逻辑运算符分为:
逻辑与 -- ( & )
1 class Operator10 {
2 public static void main(String[ ] args){
3 //逻辑与 & (两个相等的条件为true,一个或两个不符合条件都为false)
4 System.out.println(9 > 1 & 0 !=1); //true
5 System.out.println(3 <= 1 & 100 > 10); //false
6 //优先级别:算术运算符 > 关系运算符 > 逻辑运算符
7 System.out.println(9 / 6 - 4 % 2 > 0 & 18 % 9 == 0); //true
8 System.out.println(0 > 1 & 3 <= 2); //false
逻辑或 -- ( | )
1 class Operator10 {
2 public static void main(String[ ] args){
3 //逻辑或 | (一个或两个符合条件时为true,两个都不符合条件时为false)
4 System.out.println(30 > 17 | 19 < -20); //true
5 System.out.println(12 % 3 != 1 | 81 / 9 == 0); //true
6 System.out.println(-1 > 3 | 8 > 77); //false
7 }
8 }
逻辑异或 -- ( ^ )
true ^ true -------- > false
true ^ false-------- > true
false ^ false ------ > false
false ^ true ------- > true
1 class Operator10 {
2 public static void main(String[ ] args){
3 //逻辑异或 ^ (当两个条件的值不同时,则结果为true,否则为false)
4 System.out.println(8 != 9 ^ 12 > 10); //false
5 System.out.println(0 < 1 ^ 1 > 10); //true
6 System.out.println(2 / 3 + 4 % 15 <= 10 % 7 ^ 12 /5 <= 8 % 4); //false
7
8 }
9 }
逻辑非 -- ( ! )
1 class Operator10 {
2 public static void main(String[ ] args){
3 //逻辑非 ! (对布尔类型的值进行取反)
4 System.out.println(!false); //true
5 System.out.println(!!false); //false
6 //System.out.println(!1 > 9); //出现编译错误
7 System.out.println(!(1 > 9)); //true
8 }
9 }
短路与 -- ( && )
总结:短路与(&&)、逻辑与(&)。 运行结果都相同,但是执行过程可能不同.
当使用短路与,并且第一个结果为false时,则结果就为false。如果第一个结果为true,则继续判断后面的条件,真就是true 假就是false
建议使用短路与(效率比逻辑与高)
1 class Operator10{
2 //总结:短路与、逻辑与。 运行结果都相同,但是执行过程可能不同.
3 //当使用短路与,并且第一个结果为false时,则结果就为false。如果第一个结果为true,则继续判断后面的条件,是真就是true 是假就是false
4 //建议使用短路与(效率比逻辑与快)
5 System.out.println(10 > 5 && 8 != 1); //true
6 System.out.println(10 > 5 & 8 != 1); //true
7
8 System.out.println(3 > 19 && 0 < 1); //false
9 System.out.println(3 > 19 & 0 < 1); //false
10
11 System.out.println(5 < 6 && 1 >= 2); //false
12 System.out.println(5 < 6 & 1 >= 2); //false
13
14 }
15 }
短路或 -- ( || )
总结:短路或( || )、逻辑或( | )。运行结果都相同,但是执行过程可能不同. 当使用短路或,并且第一个结果为true时,则结果直接为true,运行结束。
若第一个条件为false,则继续判断第二个条件,如果是false,则结果就为false。如果是true,则结果就为true。 建议使用短路或(效率比逻辑或高)
1 class Operator10 {
2 public static void main(String[ ] args){
3 总结:短路或( || )、逻辑或( | )。运行结果都相同,但是执行过程可能不同.
4 //当使用短路或,并且第一个结果为true时,则结果直接为true,运行结束。
//若第一个条件为false,则继续判断第二个条件,如果是false,则结果就为false。如果是true,则结果就为true。
5 //建议使用短路或
6 System.out.println(1 != 2 || 55 > 66); //true
7 System.out.println(1 != 2 | 55 > 66); //true
8
9 System.out.println(2 >= 12 || 5 <= 9); //true
10 System.out.println(2 >= 12 | 5 <= 9); //true
11 }
12 }
总结:逻辑运算符最终运算输出的类型都是boolean类型