【逻辑运算符】在Java中 &&和&的区别 ||和|的区别

&&和&都表示与运算符,结果为有假则假,&&为短路与运算符,如果表达式A的值为假,则表达式B不执行;&表示逻辑与运算符,表达式A和表达式B都会执行
||和|都表示或运算符,结果为有真则真,为短路或运算符,如果表达式A的值为真,则表达式B不执行;|表示逻辑或运算符,表达式A和表达式B都会执行

一,&&和&的区别

  1. 运算规则:

    &&是短路与运算符。如果第一个条件为false,那么不会再执行第二个条件。只有当第一个条件为true时,才会判断第二个条件。

    &是逻辑与运算符。无论第一个条件的结果是true还是false,都会继续判断第二个条件。

  2. 执行效率:

    由于&&是短路与运算符,当第一个条件为false时,会直接跳过第二个条件的判断,因此可以提高程序的执行效率。

    &是逻辑与运算符,无论第一个条件的结果如何,都会继续判断第二个条件,因此可能会增加程序的执行时间。

  3. 使用场景:

    当两个条件都需要判断,并且第二个条件依赖于第一个条件的结果时,通常使用&&。

    当两个条件都需要判断,并且两个条件之间没有依赖关系时,可以使用&。

  4. 代码示例:

    int a = 5;
    int b = 10;
    // 使用&&运算符
    if (a > 0 && b > 0) {
          
          
        System.out.println("a和b都大于0");
    }
    // 使用&运算符
    if (a > 0 & b > 0) {
          
          
        System.out.println("a和b都大于0");
    }
    

    在上述例子中,当a和b都大于0时,两种写法的结果是一样的。但是当a不大于0时,使用&&运算符的条件判断会直接返回false,不会执行第二个条件的判断;而使用&运算符的条件判断会继续执行第二个条件的判断。

二,||和|的区别

  1. 运算规则:

    ||是短路或运算符。如果第一个条件为true,那么不会再执行第二个条件。只有当第一个条件为false时,才会判断第二个条件。

    |是逻辑或运算符。无论第一个条件的结果是true还是false,都会继续判断第二个条件。

  2. 执行效率:

    由于||是短路或运算符,当第一个条件为true时,会直接跳过第二个条件的判断,因此可以提高程序的执行效率。

    扫描二维码关注公众号,回复: 16484424 查看本文章

    |是逻辑或运算符,无论第一个条件的结果如何,都会继续判断第二个条件,因此可能会增加程序的执行时间。

  3. 使用场景:

    当两个条件只需要判断一个为true时,通常使用||。

    当两个条件都需要判断,并且两个条件之间没有依赖关系时,可以使用|。

  4. 代码示例:

    int a = 5;
    int b = 10;
    // 使用||运算符
    if (a > 0 || b > 0) {
          
          
        System.out.println("a和b至少有一个大于0");
    }
    // 使用|运算符
    if (a > 0 | b > 0) {
          
          
        System.out.println("a和b至少有一个大于0");
    }
    

    在上述例子中,当a和b至少有一个大于0时,两种写法的结果是一样的。但是当a不大于0时,使用||运算符的条件判断会继续执行第二个条件的判断;而使用|运算符的条件判断也会继续执行第二个条件的判断。

猜你喜欢

转载自blog.csdn.net/gjwgjw1111/article/details/132601832