用来连接boolean类型变量、常量或关系表达式计算后得到的boolean结果
&& 逻辑与,相当于”并且”
|| 逻辑或,相当于”或者”
! 逻辑非,boolean结果取反
public class logicOperator{
public static void main (String []args){
/**
* 逻辑与&&,必须左侧右侧计算结果都为true,结果才是true否则为false
*/
int num2 = 12;
int num3 = 13;
int num4 = 14;
boolean bool = num2 < num3 && num3 > num4;
System.out.println(bool);//输出为false
System.out,println(num2<num3 && num3<num4);//输出为true
/**
*逻辑或||,必须左侧右侧结果都为false,结果才是false,否则为true
*/
boolean bool 2 = num2<num3 || num3>num4;
System.out.println(bool2);//输出为true
System.out.println(num2>num3||num3>num4);//输出为false
/**
*逻辑非,用来取反,既可以对布尔值常量也可以对关系表达式得到的结果取反
*/
System.out.println(!true);//输出为false
System.out.println(!!true);//输出结果为true
boolean bool3 = num2>num3
System.out.println(!bool3);//输出结果为true
}
}
逻辑与,逻辑或运算符的短路现象
public class logicOperator{
public static void main (String []args){
int red = 6;
int blue = 7;
int gray = 8;
boolean bool4 = blue > gray && blue == ++red;
System.out.println(bool4);//输出结果为false
System.out.println(red);//输出结果不变还是6
boolean bool5 = blue < gray || blue == ++red;
System.out.println(bool5);//输出结果为true
System.out.println(red);//输出结果不变还是6
}
}
上述情况,由于blue > gray && blue == ++red表达式中左侧的blue>gray结果为false已经能够判断出整个表达式的结果,所以后边的表达式就不计算了,这种现象就叫做短路现象
同理逻辑或的短路现象一样