首先理解一下逻辑运算符:
a | b | !a | a&b | aIb | a&&b | a||b | a^b |
true | true | false | true | true | true | true | false |
true | false | false | false | true | false | true | true |
false | true | true | false | true | false | true | true |
false | false | true | false | false | false | false | false |
结果是一样的,运算是不一样的。
public class Test{
public static void main (string args[]){
int i = 1,j = 2;
boolean tlag1 = (i>3)&&((i+j)>5);//第二个操作数将不再计算,前面的操作数为假短路与结果为假
boolean tlag2 = (i<3)||((i+j)>5);//第二个操作数将不再计算,前面的操作数为真短路或结果为真
}
}
第二个操作数将不再计算,想短路了一样。叫做短路与(短路或),&(|)运算依然要计算第二个操作数。