题目描述
难度:简单
/**
* 短路与和逻辑与
*/
public class question_03 {
public static void main(String[] args){
int i=5;
boolean e = i > 6 & i++ > 7;
System.out.println(e);
System.out.println(i);
e = i > 6 && i++ > 7;
System.out.println(e);
System.out.println(i);
}
}
请写出以上代码的输出
知识点
- 关系运算符
- 自增运算
解题思路
- 逻辑与(&)和短路与(&&)在运算上对条件的结果判断不会产生影响,但会对条件本身的运算有影响。
- 逻辑与(&)在运算时会连续运算所有需要判断的命令.但短路与当遇到
false
时就停止运算。
代码实现
分析
第一次判断是逻辑与,老实人不管对错,全部计算一下,则i++
被执行,输出e=false;i=6
;
第二次判断是短路与,机灵鬼先判断第一个是错的,就不再往下计算,i++
不被执行,输出e=false;i=6
;
验证
总结
在实际开发中为了增强代码的可读性,统一使用短路与,且不在判断条件中做任何运算。