java逻辑运算&&与&的区别

本文主要阐述&&(短路与)和&(逻辑与)的运算异同:
a && b 和 a&b :

共同之处是只有a和b同时为真时,结果才为真,否则为假

不同点在于

  a && b(短路与)若a为假时,则无需判断b,直接得出结果 为假

  a & b(逻辑与)若a为假时,则b仍需要判断

public class LogicOperate {
    public static void main(String[] args) {
        // && 与 &的区别
        int a = 30;
        int b = 1;
        // &&
        // a && b ,若a为假,则b无需判断
        if( a > 40 && ++b == 2 ) {
            System.out.println("hello");
        }
        System.out.println("a = " + a +",b = " + b); // b = 1
        //&
        // a & b ,若a为假,则b仍需判断
        if( a > 40 & ++b == 2) {
            System.out.println("world");
        }
        System.out.println("a = " + a +",b = " + b); // b = 2
    }
}

注意这里使用 ++ b 作为调试的手法

由此可见,&&比&更快速地得到结果,所以在项目上尽量使用&&节约时间。

posted @ 2022-11-11 13:44  zwGitOne  阅读(86)  评论(0编辑  收藏  举报