&&、&、|| 、|都是逻辑运算符。
逻辑运算符可以针对结果为布尔值的表达式进行逻辑运算。
&& 和 & | | | 和 | | |||
范例 | 结果 | 范例 | 结果 | |
true && true | true | true || true | true | |
true && false | false | true && false | true | |
false && false | false | false && false | false | |
false && true | false | false && true | true |
在java中&&、&、||、| 操作表达式都是布尔表达式,在c中,其操作数可以是数字,0表示false,正整数表示true。
下面是短路与(&&)和与(|)之间的差别:&&有短路特性,当第一个表达式的值为false时退出计算,整个表达式的值为false,而&操作符没有短路特性,即使&左边的表达式为false时,任然会算&右边的表达式。
这两个代码可以明显看出&&和&的区别! || 同理,这边不在举例!
public class Tset {
public static void main(String[] args) {
int a = 32;
int b = 43;
boolean c,d;
c = (a>b) && ((a++)>40);
System.out.println(c); //打印的是false
System.out.println("a="+a);//打印的是32
}
public class Tset {
public static void main(String[] args) {
int a = 32;
int b = 43;
boolean c,d;
c = (a>b) & ((a++)>40);
System.out.println(c); //false
System.out.println("a="+a); //打印的是 a = 33
}