注册 登录
编程论坛 JAVA论坛

关于逻辑运算符的问题,希望能够详细解释?

raylei 发布于 2016-08-23 15:26, 1222 次点击
逻辑运算符:&:若A为false,还是会去计算B的值
            &&:若A为false,不会去计算B的值
        boolean a = true;
        boolean b = false;
        System.out.println(a&b);//false
        System.out.println(a&&b);//false
        System.out.println(b&a);//false
        System.out.println(b&&a);//false
那么这个System.out.println(b&a);//false不应该是true吗?
        
1 回复
#2
仍去寻酒2016-08-23 22:45
逻辑运算符有三种 :与&&       或||       非!
你的这些代码输出应该全是flase
逻辑运算符: &&(与) ||(或) !(反) &&:当两边同时为真时,结果为真,否则为假 || :当两边有一边为真时,结果为真,否则为假 ! :真值变假值,假值变真值
还有应该注意到逻辑运算符的短路操作,比如:
int a=1,b=1;
if(a>b&&a/0){
System.out.println("one");
}else System.out.println("two");
“&&”运算符检查第一个表达式是否返回“false”,如果是“false”则结果必为“false”,不再检查其他内容。
“a/0”是个明显的错误!但短路运算“&&”先判断“a<b”,返回“false”,遂造成短路,也就不进行“a/0”操作了,程序会打出two 这个时候,交换一下“&&”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。


[此贴子已经被作者于2016-8-23 22:46编辑过]

1