java & 和 && 和 II 和 I 区别

&& 是条件与。

&&在检查两边的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

posted @ 2012-07-09 20:25  大果粒  阅读(1855)  评论(0)    收藏  举报