控制符
-
且是必须两边都成立才算成立
&是单且,&&是双且
&&是左边条件对了才会计算右边,错了就不会计算右边,注定是错,不浪费时间;
&的话,无论左边成立与否都会计算右边。 -
或是两边只要成立一个就成立
|是或,||是双或||是左边如果成立就不会计算右边了,注定是对,不浪费时间,前后只要对一个就算成立
|的话,不论左边是否成立,都要计算右边,前后只要对一个就算成立.
例1:&&
int x = 1,y=1,z=1;
&& 如果前面为false,后面的不执行,如果为true,后面的执行
System.out.println((x++)<(++y) && (++y)<(++z));
System.out.println(“x=”+x);
System.out.println(“y=”+y);
System.out.println(“z=”+z);
最后输出结果为 false x=2 y=3 z=2
&&是左边条件对了才会计算右边,如果左边为(x++)>(++y),
就不会再计算右边,输出结果为 false x=2 y=2 z=1
例2:&
int x = 1,y=1,z=1;
& 如果前面为false,后面也执行,如果为true,后面的也执行
System.out.println((x++)>(++y) & (++y)<(++z));
System.out.println(“x=”+x);
System.out.println(“y=”+y);
System.out.println(“z=”+z);
最后输出结果为false x=2 y=3 z=2
例3:||
|| 如果前面为true,后面不执行 , 前面为false,后面才会执行,前后对一个就算成立
System.out.println((x++) < (++y) || (++y) < (++z));
System.out.println(“x=” + x);
System.out.println(“y=” + y);
System.out.println(“z=” + z);
最后输出结果为true x=2 y=2 z=1
例4:|
| 如果前面为true,后面也执行,前后对一个就算成立
System.out.println((x++)<(++y) | (++y)<(++z));
System.out.println(“x=”+x);
System.out.println(“y=”+y);
System.out.println(“z=”+z);
最后输出结果为 true x=2 y=2 z=1