&&和|| 是逻辑运算符(也包括 !)
逻辑运算符 | 含义 |
---|---|
&& | 逻辑与(两者为真才为真,一者为假即为假) |
︱︱ | 逻辑或(两者为假才为假,一者为真即为真) |
! | 逻辑非(本来值的反值) |
逻辑运算符的含义与数学中所学的逻辑含义是一样的。
& 和 | 是位运算符(也包括^和~)
位运算符 | 规则 |
---|---|
&(按位与) | 全1则1,否则为0 |
︱(按位或) | 全0则0,否则为1 |
^(按位异或) | 相同为0,不同为1 |
~(按位非) | 遇0则1,遇1则0 |
上面是位运算符的运算规则,其中运算步骤如下:
举个例子:
需要注意的是
◆位运算符&和| 不仅能够对boolean进行计算,还可以对数值进行计算,而逻辑运算符只能对boolean进行计算;
◆位运算符不会“短路”,而逻辑运算符会“短路”,举个例子
int x = 10;
int y = 10;
if((x=0)==0 || (y=0)==0){
System.out.println(y);
}
输出的结果为10;
而以下代码:
int a = 10;
int b = 10;
if((a=0)==0 | (b=0)==0){
System.out.println(b);
}
运行的结果为0