在java中”&&”是逻辑运算符,A&&B表达式,只有当A,B都为真的时候表达式结果为真,其他情况都为假。在执行过程中会出现“短路”的现象。
例如:
(a==1 && b==1) 即表示 在a==1 b==1两个条件需要同时满足,返回结果才是 true
int i=0,j=1;
if(i++&&j++)
System.out.println(“j=”+j);
的输出结果是:j=1;而如果换成”&”则程序的输出结果将为:j=2,在书写的程序中一般是不会用后者的,因为目的是必须两者都为真才执行下面的语句。
& 和 && 相同点:
都表示“与”操作。这里的“与”和数学中的“与或非”中的“与”意义相同,都遵循“一假必假”原则。即“与”符号两边的元素只要有一个为假,"与"操作执行后的结果就为假。
& 和 && 的区别:
1)& 表示“按位与",这里的”位“是指二进制位(bit)。
例:十进制数字8 转化为二进制是:1000 ;数字9 转化为二进制是1001 。
则如有以下程序:
public class Test {
public static void main(String[] args) {
System.out.println(9 & 8);
}
}
输出结果应该是:8
原因:1001 & 1000 = 1000 。 计算机中一般1表示真,0表示假。最左边一位1&1=1,最右边一位1&0 = 0.
2) && 表示逻辑”与“ ,即java中的boolean值才可以存在于&&符号的左右两侧。
true && false = false ,true && true = true , 依旧是"一假必假"。
值的注意的是:&& 符号有所谓的“短路原则”,当 A && B 出现时,如果A经判断是假,那么B表达式将不会获得执行或被判断的机会。直接结果就为假。
注:关于十进制与二进制的转换,简单的说每四位可以遵循”8421“原则,1001即8+1=9,1011即8+2+1=11
&&怎么表示不清楚,不过&&表示逻辑运算‘与’。A&&B表达式,只有当A,B都为真的时候表达式结果为真,其他情况都为假。
使用ASCII字符表