短路问题——|和||,&和&&的区别

本文详细解析了Java中逻辑运算符&、&&、|、||的使用及区别,通过具体示例说明了短路运算符&&和||的工作原理,并对比了它们与普通逻辑运算符&和|的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

&和&&的区别是,&会执行两边,不管第一个是否成立
&&只会执行一边,如果第一个条件为假,则不会走第二个条件
举例

public class Test2{

    public static void main(String[] args){

        int i=3;

        if((i++>5)&(i++<9)){

            System.out.println(i);

            System.out.println("恭喜,执行完了条件语句!");

        }

           System.out.println(i);

    }

}

结果是i=5

public class Test2{

    public static void main(String[] args){

        int i=3;

        if((i++>5)&&(i++<9)){

            System.out.println(i);

            System.out.println("恭喜,执行完了条件语句!");

        }    

        System.out.println(i);

    }

}

结果是i = 4

||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。

注意当他们进行运算的时候,&表示两个数先都变成二进制,然后两个数都是1才为1,其他为0
|表示两个数只要有一个为1,就是1,其他都是0

例如:

int a = 2;
int b = 3;

boolean flag1 = ++a > 1 | --b < 5;
System.out.println(flag1);
System.out.println(a);
System.out.println(b);

结果:flat=true a=3 b=2
如果替换为||,则结果为:flat=true a=3 b=3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值