在if()判断语句下,有时括号内的语句会先于条件执行。下面两个例子:
EX1:
public class A {
public static void main(String[] args) {
int i=8;
int j=16;
if(i-1>j){
i–;
}
System.out.println(i);
}
}
//代码执行到if条件时,先对括号内的条件进行判断,i-1=7,条件不成立,此时输出 i 为依然8。
下面再看一个例子:
EX2:
public class A {
public static void main(String[] args) {
int i=8;
int j=16;
if(i–>j){
i–;
}
System.out.println(i);
}
}
//此时输出的 i 值为7。因为当执行到if语句时,自增自减运算符等级优先于“>”号,先执行 i=i-1,
即这里 i–有个赋值语句,所以输出为7。