class BoolArray {
boolean [] b = new boolean[3];
int count = 0;
void set(int i)
{
b[i] = true;
++count;
}
public static void main(String [] args)
{
BoolArray ba = new BoolArray();
ba.set(0);
ba.set(2);
ba.test();
}
void test()
{
if ( b[0] && b[1] | b[2] )
count++;
if ( b[1] && b[(++count - 2)] )
count += 7;
System.out.println("count = " + count);
}
}
在所有这些情况下,
if ( b[0] && b[1] | b[2] )
if ( b[1] && b[0] || b[2] )
if ( b[1] && b[0] || b[2] )
为什么'&&'的短路逻辑因为代码到达if块内部而无法正常工作?
请解释逻辑运算符的执行顺序。
答案 0 :(得分:0)
为什么'&&'的短路逻辑不能像代码一样工作 到达if区域内?
短路逻辑正常工作。在您到达第二个count
语句之前,if
为3,并且它正确地处理++count
并将其保留为3。
请解释逻辑运算符的执行顺序。
按位AND&
按位异或OR ^
按位包含OR |
逻辑AND&&
逻辑OR ||