&& 是条件与。
&&在检查两边的BOOLEAN时,当左边的为假时是不会检测右边的值的。
表示一个一个执行下去,当全部为true才打印true,如果有一个结果是false则停止执行,打印false。
例1:false && ... = false
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a>10 && (a++)>10){5 System.out.println("true");6 }7 System.out.println(a); //10
8 }9 }
结果:
10
例2:true && false = false
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a==10 && (a++)>10){5 System.out.println("true");6 }7 System.out.println(a); //11
8 }9 }
结果:
11
例3:true && true = true
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a==10 && (a++)==10){5 System.out.println("true");6 }7 System.out.println(a); //11
8 }9 }
结果:
true
11
====================================================================================================
& 是布尔与。&不论左边的是真是假右边的表达式都会进行检测。
无论第一个操作元是true还是false,都要对第二个操作元计值。
全部执行完毕,都为true,则为true,否则为false。
例1:false & true = false
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a>10 & (++a)>10){5 System.out.println("true");6 }7 System.out.println(a); //11
8 }9 }
结果:
11
例2:true & false = false
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a==10 & (a++)>10){5 System.out.println("true");6 }7 System.out.println(a); //11
8 }9 }
结果:
11
例3:true & true = true
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a==10 & (++a)>10){5 System.out.println("true");6 }7 System.out.println(a); //11
8 }9 }
结果:
true
11
例4:false & false = false
1 public classTestLogical {2 public static voidmain(String[] args) {3 int a = 10;4 if(a<10 & (a++)<10){5 System.out.println("true");6 }7 System.out.println(a); //11
8 }9 }
结果:
11
====================================================================================================
|| 表示一个一个执行下去,遇到true则不继续执行,打印ture,当全部为false,则打印false
1 //true || false || false
2 public classTestLogical {3 public static voidmain(String[] args) {4 int a = 10;5 if(a==10 || (a++)>10 || (++a)<10){6 System.out.println("true");7 }8 System.out.println(a);9 }10 }
结果:
true
10
1 //false || true || false
2 public classTestLogical {3 public static voidmain(String[] args) {4 int a = 10;5 if(a!=10 || (a++)==10 || (++a)<10){6 System.out.println("true");7 }8 System.out.println(a);9 }10 }
结果:
true
11
1 //false || false || false
2 public classTestLogical {3 public static voidmain(String[] args) {4 int a = 10;5 if(a!=10 || (a++)>10 || (++a)<10){6 System.out.println("true");7 }8 System.out.println(a);9 }10 }
结果:
12
====================================================================================================
| 全部执行完毕后,如果全部为false,则结果为false。有一个结果为true,则结果为true。
1 //true | false | false
2 public classTestLogical {3 public static voidmain(String[] args) {4 int a = 10;5 if(a==10 | (a++)>10 | (++a)<10){6 System.out.println("true");7 }8 System.out.println(a); //12
9 }10 }
结果:
true
12
1 //false | true | false
2 public classTestLogical {3 public static voidmain(String[] args) {4 int a = 10;5 if(a!=10 | a==10 | (++a)<10){6 System.out.println("true");7 }8 System.out.println(a); //12
9 }10 }
结果:
true
12
1 //false | false | false
2 public classTestLogical {3 public static voidmain(String[] args) {4 int a = 10;5 if(a!=10 | (a++)>10 | (++a)<10){6 System.out.println("true");7 }8 System.out.println(a); //12
9 }10 }
结果:
12