【逻辑运算符】在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时,会直接跳过第二个条件的判断,因此可以提高程序的执行效率。

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

  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时,使用||运算符的条件判断会继续执行第二个条件的判断;而使用|运算符的条件判断也会继续执行第二个条件的判断。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G佳伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值