逻辑运算符概述

在数学中,一个数据x,大于3,小于6,我们可以这样来进行表示:3<x<6

在Java中,需要把上面的式子先进行拆解,在进行合并表达。

拆解为:x>3和x<6

合并后:x>3&&x<6

&&其实就是一个逻辑运算符。

我们可与这样说,逻辑运算符,是用来连接关系表达式的运算符。

当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。

 

逻辑运算符

Java逻辑运算符_逻辑与

 

 

运算符测试:

 1 /*
 2     逻辑运算符
 3 */
 4 public class HelloWorld{
 5     public static void main(String[] args){
 6         //定义变量
 7         int i = 10;
 8         int j = 20;
 9         int k = 30;
10         
11         //”&“(逻辑与) 有false则false,无false则true
12         System.out.println((i > j) & (i > k)); //false & false
13         System.out.println((i < j) & (i > k)); //true & false
14         System.out.println((i > j) & (i < k)); //false & true
15         System.out.println((i < j) & (i < k)); //true & true
16         System.out.println("-------");
17         
18         //“|”(逻辑或) 有true则true,无true则false
19         System.out.println((i > j) | (i > k)); //false | false
20         System.out.println((i < j) | (i > k)); //true | false
21         System.out.println((i > j) | (i < k)); //false | true
22         System.out.println((i < j) | (i < k)); //true | true
23         System.out.println("-------");
24         
25         //“^”(逻辑异或) 相同为false,不相同为true
26         System.out.println((i > j) ^ (i > k)); //false ^ false
27         System.out.println((i < j) ^ (i > k)); //true ^ false
28         System.out.println((i > j) ^ (i < k)); //false ^ true
29         System.out.println((i < j) ^ (i < k)); //true ^ true
30         System.out.println("-------");
31         
32         //“!” (逻辑非) 奇数是true 偶数是false
33         System.out.println((i > j)); //false
34         System.out.println(!(i > j)); //!false
35         System.out.println(!!(i > j)); //!!false
36         System.out.println(!!!(i > j)); //!!!false
37         System.out.println("-------");
38     }
39 }

 

短路逻辑运算符

Java逻辑运算符_逻辑运算符_02

 

 

注意事项:

逻辑&,无论左边真假,右边都要执行

短路与&&,如果左边为真,右边执行,如果左边为假,右边不执行。

逻辑或|,无论左边真假,右边都要执行。

短路或||,如果左边为假,右边执行;如果左边为真,右边不执行

最常用的逻辑运算符:&&,||,!

实操:

 1 /*
 2     逻辑运算符
 3 */
 4 public class HelloWorld{
 5     public static void main(String[] args){
 6         //定义变量
 7         int i = 10;
 8         int j = 20;
 9         int k = 30;
10         
11         //”&&“(短路逻辑与) 有false则false,无false则true
12         System.out.println((i > j) && (i > k)); //false && false
13         System.out.println((i < j) && (i > k)); //true && false
14         System.out.println((i > j) && (i < k)); //false && true
15         System.out.println((i < j) && (i < k)); //true && true
16         System.out.println("-------");
17         
18         //“||”(短路逻辑或) 有true则true,无true则false
19         System.out.println((i > j) || (i > k)); //false || false
20         System.out.println((i < j) || (i > k)); //true || false
21         System.out.println((i > j) || (i < k)); //false || true
22         System.out.println((i < j) || (i < k)); //true || true
23         System.out.println("-------");
24         
25         //&&和&
26         //System.out.println((i++ > 100) & (j++ > 100)); //false & false
27         System.out.println((i++ > 100) && (j++ > 100)); //false && false
28         System.out.println("i:" + i);
29         System.out.println("j:" + j);
30     }
31 }