public class Demo{
public static void main(String[] args){
int i=1;
int j=1;
if(i++ < 0 && (++j >0 || true)){}
System.out.println(i);
System.out.println(j);
}
}打印结果为什么是 2,1
这么说(++j >0 || true) 根本没执行 可是()不是比 && 优先级高吗?
很迷途的一个问题,请高手指教,谢谢!!
public static void main(String[] args){
int i=1;
int j=1;
if(i++ < 0 && (++j >0 || true)){}
System.out.println(i);
System.out.println(j);
}
}打印结果为什么是 2,1
这么说(++j >0 || true) 根本没执行 可是()不是比 && 优先级高吗?
很迷途的一个问题,请高手指教,谢谢!!
这样 j==2了吧。
难道 && 不管优先级 一切从左到右运算。
楼上的真确 public class demo{
public static void main(String aa[]){
int i=1;
int j=1;
if(i++>0 && (++j>0)==true) {
System.out.println(i);
System.out.println(j);
}else{
System.out.println("false");
}
}
} 你把程序写成这样就容易理解了
((表达式1)&&(表达式2))
先算表达式1,为真再算表达式2!
只要&&左边为真是那么就停止了!所以&&右边是不会在执行了!楼上正确,多写括号!
从左向右计算
在第一次判断为false的地方断开,放弃右边所有操作