Java中运算符“|”和“||”以及“&”和“&&”区别
1.“|”运算符:不论运算符左侧为true还是false,右侧语句都会进行判断,下面代码
int a =1,b=1; if(a++ == 1 | ++b == 2) System.out.println("true"); System.out.println("a= "+ a + " ,b= " + b);
左侧为true,右侧为true,输入出结果为:
true
a= 2 ,b= 2
2.“||”运算符:若运算符左边为true,则不再对运算符右侧进行运算,如下代码:
1 int a =1,b=1; 2 if(a++ == 1 || ++b == 2) 3 System.out.println("true"); 4 System.out.println("a= "+ a + " ,b= " + b);
左侧为true,所以没有判断运算符右侧语句,输出结果为:
1 true
2 a= 2 ,b= 1
3.&运算符与|运算符类似:不论运算符左侧为true还是false,右侧语句都会进行判断:
int a =1,b=1; if(a++ == 2 & ++b == 2) System.out.println(true); else System.out.println(false); System.out.println("a= "+ a + " ,b= " + b);
&运算符左侧为false,单依然会运行右侧语句输出为:
false a= 2 ,b= 2
4.“&&”运算符与“||”运算符类似:若运算符左侧为false则不再对右侧语句进行判断:
int a =1,b=1; if(a++ == 2 && ++b == 2) System.out.println(true); else System.out.println(false); System.out.println("a= "+ a + " ,b= " + b);
输出结果:
1 false 2 a= 2 ,b= 1