逻辑运算符:
&: 并且 与
所有的表达式都为true 结果才是true
|: 或者 或
表达式内只要有一个为true 结果就是true 都为false结果才是false
!: 非
取反
^: 异或
相同为false 不同为true
&&
||
class OperatorTest6{
public static void main(String[] args){
boolean t1 = true;
boolean t2 = true;
boolean f1 = false;
boolean f2 = false;
System.out.println("--------------------- ^ ---------------------");
System.out.println(t1^t2);
System.out.println(f1^f2);
System.out.println(f1^t1);
System.out.println("--------------------- ! ---------------------");
System.out.println(!t1);
System.out.println(!f1);
System.out.println("--------------------- | ---------------------");
System.out.println(f1|f2|f1 | f2 | t1);
System.out.println(f1|f2|f1 | f2);
System.out.println("--------------------- & ---------------------");
System.out.println(t1&t2&t1&f1);
System.out.println(t1&t2&t1);
}
}
逻辑运算符:
&: 并且 与
所有的表达式都为true 结果才是true
|: 或者 或
表达式内只要有一个为true 结果就是true 都为false结果才是false
!: 非
取反
^: 异或
相同为false 不同为true
&&: 短路与
当前面的表达式为false 时 就不再计算后面的表达式
||: 短路或
当前面的表达式为true时 就不再计算后面的表达式
class OperatorTest7{
public static void main(String[] args){
int a = 10;
int b = 20;
boolean r = b > a | a++ > b;
System.out.println("r = "+r +", a = "+ a);
a = 10;
r = b > a || a++ > b;
System.out.println("r = "+r +", a = "+ a);
boolean t1 = true;
boolean t2 = true;
boolean f1 = false;
boolean f2 = false;
System.out.println("--------------------- || ---------------------");
System.out.println(f1||f2 ||f1 || f2 || t1);
System.out.println(f1||f2||f1 || f2);
System.out.println("--------------------- && ---------------------");
System.out.println(t1&& t2&&t1&&f1);
System.out.println(t1&& t2&&t1);
System.out.println("--------------------- --- ---------------------");
int m = 20;
int n = 30;
boolean result = m>n & n++ > m;
System.out.println("result = "+result +", n ="+ n);
n = 30;
result = m>n && n++ > m;
System.out.println("result = "+result +", n ="+ n);
}
}