日期:2014-05-20  浏览次数:20726 次

逻辑运算符混用的结果
true | true && false的结果是false;
true || true && false的结果是true,程序中显示true&&false是dead code;
true | true & false的结果是true。
有人能告诉我为什么吗?
逻辑运算符?混用

------解决方案--------------------
dead code就是永远执行不到的代码,有可能会被编译器优化掉的。
你自己看看你的逻辑是不是有可能运行到?
------解决方案--------------------
 不会短路运算
true 
------解决方案--------------------
 true && false 先比较true
------解决方案--------------------
true,返回true 然后&& false时因为&& 要都两边都为true才是true,所以就false 啦

------解决方案--------------------
 会短路运算
true 
------解决方案--------------------
 true && false 当看到第一个为true的时候,
------解决方案--------------------
 只要有一个为true就返回true,所以 你后面那个&& 不会执行到那啦

true 
------解决方案--------------------
 true & false的结果是true。 额,这个优先级 & 优先级比
------解决方案--------------------
高 true
------解决方案--------------------
 (true & false)

应该是这么个情况
------解决方案--------------------

int i=1;
System.out.println(true
------解决方案--------------------
(i++==2));
System.out.println(i);

结果为1