public class Bool
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
int a = 5;
int b = -5;
int c = 20;
/*
* && 优先级高于 ||,即 && 先计算
*/
if ((b-- < -5) && (a++ < 5) || (c < 30))
{
System.out.println("HERE FIRST");
}
System.out.println("FIRST a is " + a);
System.out.println("FIRST b is " + b);
}
}
运行结果是:
HERE FIRST
FIRST a is 5
FIRST b is -6
由于java 的短路机制,前面 && 的条件已经为 false, 所以 b执行了--操作,而a没有执行++操作。