&& 是条件与。
&&在检查两边的BOOLEAN时,当左边的为假时是不会检测右边的值的。
表示一个一个执行下去,当全部为true才打印true,如果有一个结果是false则停止执行,打印false。
例1:false && ... = false
1 public class TestLogical { 2 public static void main(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 class TestLogical { 2 public static void main(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 class TestLogical { 2 public static void main(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 class TestLogical { 2 public static void main(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 class TestLogical { 2 public static void main(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 class TestLogical { 2 public static void main(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 class TestLogical { 2 public static void main(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 class TestLogical { 3 public static void main(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 class TestLogical { 3 public static void main(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 class TestLogical { 3 public static void main(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 class TestLogical { 3 public static void main(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 class TestLogical { 3 public static void main(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 class TestLogical { 3 public static void main(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