先看一段程序的执行结果
public class test{
public static void main(String args[]){
System.out.println(3&3);
System.out.println(3>5&&5/0>3);
System.out.println(3>5&5/0>3);
}
}
结果:
3
false
除0异常
1、&和&&都可作为逻辑与运算符,不过&还可作为位运算符。
2、& 什么情况下作为逻辑运算符,什么情况下作位运算符?
答案是:&的两则是Boolean类型的做逻辑运算符;&两侧不是boolean类型做位运算符。
3、由上面的程序也可以看出当作为逻辑运算符时两者也是有区别的。
&&具有短路的功能,当&&左边的逻辑表达式的值为假是其右边的逻辑表达式不再执行;这一点可用程序中第二个输出验证,因为没有报除0异常。
&当做逻辑与运算符时,其两侧的逻辑表达式都会执行,所以第三个输出语句报错。