面试中,经常遇到最简单的试题,但是我们经常回答错,比如||和|的区别,我们来小小探讨一下。
众所周知,&&和||在Java和PHP中都是逻辑操作符,也叫条件操作符,
条件与”:x和y均为true,取值是true,否则取值是false
&和&&都需要两个操作数的值都是true时,才取值true,但是两个操作符还是有区别的。下面我们通过几个简单的小例子深入实践一下
int x = 1;
int y = 1;
if(x--==2&&y++==1){
System.out.println("x="+x+" y="+y);
System.out.println("这是执行的if语句");
}
else{
System.out.println("x="+x+" y="+y);
System.out.println("这是执行的else语句");
}
程序的输出结果为:
x=0 y=1
这是执行的else语句
这是执行的else语句
以上示例说明了当A条件不满足的时候,条件B便不再执行,
//即没有执行y++故y値仍然输出1
程序的输出结果为:
//即没有执行y++故y値仍然输出1
int x1 = 1;
int y1 = 1;
if(x1--==2&y1++==1){
System.out.println("x1="+x1+" y1="+y1);
System.out.println("这是执行的if语句");
}
else{
System.out.println("x1="+x1+" y1="+y1);
System.out.println("这是执行的else语句");
}
程序的输出结果为:
x1=0 y1=2
这是执行的else语句
这是执行的else语句
以上示例说明了当条件A不满足的时候条件B依旧执行判断。故执行
了条件else语句。
了条件else语句。
int x2 = 1;
int y2 = 1;
if(x2--==1||y2++==2){
System.out.println("x2="+x2+" y2="+y2);
System.out.println("这是执行的if语句");
}
else{
System.out.println("x2="+x2+" y2="+y2);
System.out.println("这是执行的else语句");
}
程序的输出结果为:
x2=0 y2=1
这是执行的if语句
这是执行的if语句
当条件A满足的时候便不再判断B条件,即没有执行y2++语句
int x3 = 1;
int y3 = 1;
if(x3--==1|y3++==2){
System.out.println("x3="+x3+" y3="+y3);
System.out.println("这是执行的if语句");
}
else{
System.out.println("x3="+x3+" y3="+y3);
System.out.println("这是执行的else语句");
}
程序的输出结果为:
x3=0 y3=2
这是执行的if语句
这是执行的if语句
当逻辑运算符为|时,不管条件A成立与否,条件B都将进行判断。
下面请思考一下,下面的小程序的输出结果是什么?
int m=1,n=1,z=1;
if(m--==1&&n++==1||z++==1){
System.out.println("m="+m+" n="+n+" z"+z);
}