一般多出现在面试题中或者大学的软件专业的试卷中,短路主要在逻辑&&(与)与逻辑||(或)的逻辑表达式中 逻辑&&中的短路,代码如下 int num1=3, num2=5; if (++num1 > 5 && ++num2 >=6) { Console.WriteLine("逻辑&表达式中的短路"); } Console.WriteLine("num1 {0} num2 {1}", num1, num2); 一般猜测 num1=4;num2=6; 实际运行结果 num1=4; num2=5 首先要知道逻辑&&怎么用,使用逻辑&&连接的表达式必须两个都为真整个表达式的结果才为真; 一元运算符 ++变量名的怎么使用,++变量名 先自加后使用 按照上面所说num1=4;num2的值应该是6,怎么等于5,在C#中为了执行效率更高些,因为逻辑&&必须两边都为真结果才为真, 先判断++num1>5,因为++num1的值为4,所以++num1>5结果为假,所以&&后面的++num2直接跳过,++num2根本没有执行,所以++num2还是原值5 与此同理逻辑||的短路一样 if (++num1 < 5 || ++num2 >=6) { Console.WriteLine("逻辑&表达式中的短路"); } Console.WriteLine("num1 {0} num2 {1}", num1, num2); 运行结果++num1=4; num2=5; 因为逻辑||是有一个条件为真结果为真,所以++num1<5的结果为真,直接跳过++num2>6 所以++num1执行自加等于4; num2不执行还是原值 5; ========if-else的配对======= int age=15; string name="zs"; if (age > 18) if (name=="ls") Console.WriteLine("if-else的配对"); else Console.WriteLine("与哪个if配对"); Console.ReadKey(); 运行结果为如下
为什么什么东西都没有输出来,else都是与自己最近上面的if配对 所以else是属于第二个if的,首先因为条件为假,所以下面的if-else不能执行;这样看不清楚,加上大括号就会一目了然,如图所示
由此看来大括号最好一定带上,把一条语句写成语句块,即使语句块只有一条. |
|
来自: 新用户26922hFh > 《待分类》