备注:
bool a = true; bool b = false; if (a|b) { Console.WriteLine("a|b"); } if (a||b) { Console.WriteLine("a||b"); }其中两个if语句的效果是一样的,但是"|“运算符需要对a,b同时去判断,而”||“运算符判断第一个a为true就不需要去判断b的值.同理”&“和”&&“是一样的道理,在代码量大的程序中,使用”||“和”&&"是可以提升性能的.
&:按位与 |:按位或 ^:按位异或 ~:按位取反 大多数代码都不用,但是应该知道它的存在,主要用于高度优化代码
判断条件?表达式1:表达式2 若判断条件为真,则执行表达式1 若判断条件为假,则执行表达式2
尽量少用。 当你的逻辑非常清晰时,它可以控制什么时候执行哪些代码的一种简单方式。(汇编语言会经常接触)
编译器首先对判断条件1,为真,执行代码1;为假,判断条件2,条件2为真,执行代码2,为假,判断……若以上条件都为假,则执行代码n。else在if语句中可以不写。
还可以这样:
int i = 2; switch (i) { case 1: case 2: Console.WriteLine("1 or 2"); break; case 'a': Console.WriteLine('a'); break; default: Console.WriteLine("不符合列举条件"); break; }普遍认为switch的性能是高于if的,但是有时候为了代码的阅读方便以及对于判断逻辑的辨别,if的使用频率是比较高的。 例:
bool a=true,b=true,c=false; if(a&&b&&c) { Console.WriteLine("a=true,b=true,c=true"); } else if(!a&&b&&c) { Console.WriteLine("a=false,b=true,c=true"); } else if(a&&b&&!c) { Console.WriteLine("a=true,b=true,c=false"); } ... else { Console.WriteLine("a=false,b=false,c=false"); }上述代码对a,b,c三个bool变量进行了判断,用if可以直观明了的对其进行排版,代码阅读性高,虽然使用switch也可以实现但是阅读性低。 但是
int i=1; switch (i) { case 1: Console.WriteLine("1"); break; case 2: Console.WriteLine("2"); break; case 'a': Console.WriteLine("3"); break; default: Console.WriteLine("无"); break; } //换成if if(i == 1) { Console.WriteLine("1"); } else if(i == 2) { Console.WriteLine("2"); } else if(i == 3) { Console.WriteLine("3"); } else { Console.WriteLine("无"); }类似这种情况应该使用switch switch的查找类似二叉树,if的则是线性 具体使用哪一种方式应该在你的项目中决定
欢迎关注我的微信个人订阅号 我的微博:well火柴 每天多学一点0.0