关于普通与(&)、普通或(|)和逻辑与(&&)、逻辑或(||)的区别

1.关于&和&&的区别

"与"逻辑的操作需要若干判断条件全部返回true,最终的结果才为true,如果有一个判断条件为false,name不管有多少个true最终的结果一定就是false。所以在java中针对逻辑"与"操作提供了两类运算符

1)普通与逻辑(&):所有的判断条件都进行判断

2)短路与逻辑(&&):如果前面的判断返回了false,直接中断后续的判断条件,最终的结果就是false。

例:使用普通"与"逻辑运算符

public class TestDemo{
    public static void main(String[] args){
        //条件1:"5>8"    返回false
        //条件2: "1/0==0",执行时会出现ArithmeticException异常导致程序中断
        System.out.println(5>8 & 1/0==0);//输出逻辑运算结果

    }

}

程序执行结果:

Exception in thread "main" java.lang.ArithmeticException:/ by zero

              at TestDemo.main(TestDemo.java:5)

在程序中任何的数字除以0都会产生ArithmeticException算数异常信息,那么也就证明此时两个判断条件全部执行了,但对于此时的程序来讲"5>8"的关系运算结果为false,即后续的所有判断不管返回多少个true最终的结果都只能是false,而此时普通"与"(&)逻辑使用的意义就不大了,那么最好的做法是使用短路"与"逻辑(&&)

例:使用短路"与"逻辑运算符

public class TestDemo{
    public static void main(String[] args){
        //条件1:"5>8"    返回false
        //条件2: "1/0==0",执行时会出现ArithmeticException异常导致程序中断
        System.out.println(5>8 && 1/0==0);//输出逻辑运算结果

    }

}

程序执行结果:

false

本程序使用短路"与"逻辑,可以发现条件2并没有执行,即短路"与"的判断性能要比普通"与"的要好

2.关于|和||的区别

"或"逻辑运算符的操作特点就是若干个判断条件有一个返回了true,那么最终的结果就为true,所以在java中针对"或"逻辑提供有两类运算符

1)普通"或"逻辑(|):所有的判断条件都执行

2)短路"或"逻辑(||):若干个判断条件如果有判断条件返回true,那么后面的条件将不再判断,最终的结果为true

例:普通"或"逻辑运算

public class TestDemo{
    public static void main(String[] args){
        //条件1:"8>5"    返回true
        //条件2: "1/0==0",执行时会出现ArithmeticException异常导致程序中断
        System.out.println(8>5 | 1/0==0);//输出逻辑运算结果

    }

}

程序执行结果:

Exception in thread "main" java.lang.ArithmeticException:/ by zero

              at TestDemo.main(TestDemo.java:5)

本程序定义了两个判断条件:"8>5" 返回true,"1/0==0"产生ArithmeticException算数异常,由于此时使用了普通"或",则在第一个判断条件返回true后,会继续执行第二个判断条件,此时就产生了异常,而对于此时的程序要注意,如果第一个判断条件已经返回了true,那么后面不管有多少 个false最终的结果都是true,则此时可以考虑使用段路"或"逻辑运算

例:段路"或"逻辑运算

public class TestDemo{
    public static void main(String[] args){
        //条件1:"8>5"    返回true
        //条件2: "1/0==0",执行时会出现ArithmeticException异常导致程序中断
        System.out.println(8>5 || 1/0==0);//输出逻辑运算结果

    }

}

程序执行结果:

true

本程序利用了段路"或"逻辑进行了判断,通过执行结果可以看出,第二个判断条件并没有执行。因为段路"或"运算符执行性能较高,所以建议开发中对于"或"逻辑应用以"||"为主

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值