逻辑运算符、短路特性
逻辑运算符: && 逻辑与 同真为真,一假则假
|| 逻辑或 一真则真,同假则假
! 逻辑非 取反:真为假,假为真
短路特性:
1、对于逻辑与来说,当第一个条件已经为假时,则表达式结果一定为假(同真为真,一假则假 ),此时不再执行第二个条件。例如:a && b 当a条件为假的时候,则b条件被短路,不再执行b条件,直接返回假。
2、对于逻辑或来说,当第一个条件已经为真时,则表达式结果一定为真(一真则真,同假则假 ),此时不再执行第二个条件。例如:a || b 当a条件为真的时候,则b条件被短路,不再执行b条件,直接返回真。
3、为了更好的理解短路特性,可学习一下下面的例子(例子是从网上找的,感谢其他博主的分享:https://blog.csdn.net/xyphf/article/details/78056966),试着写出2、3、4、6、7、8行的输出结果:
public class TestLogic{
public static void main(String[] args){
int ia = 3;
int ib = 2;
//先判断++ia == 3是否为假,如果为假,则++ib == 3被短路,一假则假
boolean b3 = (++ia == 3 && ++ib == 3);// ①
System.out.println("b3 = " + b3); //② false
System.out.println("ia = " + ia); //③ 4
System.out.println("ib = " + ib); //④ 2
System.out.println("-------------------------------");
//先判断++ia == 5是否为真,如果为真,则++ib == 3被短路,一真则真
boolean b4 = (++ia == 5 || ++ib == 3);//⑤
System.out.println("b4 = " + b4); //⑥ true
System.out.println("ia = " + ia); //⑦ 5
System.out.println("ib = " + ib); //⑧ 2
}
}