【Java 中 &、&&、|、|| 的区别​】

Java 中 &、&&、|、|| 的区别​

运算符名称是否短路主要用途
&逻辑与(非短路)❌ 非短路条件判断、位运算
&&短路与✅ 短路条件判断(推荐)
|逻辑或(非短路)❌ 非短路条件判断、位运算
||短路或✅ 短路条件判断(推荐)

&、&&

boolean a = false;
boolean b = true;

// 使用 &(非短路)
if (a & (b = false)) { // 即使 a=false,仍然会计算 b=false
    System.out.println("不会执行");
}
System.out.println(b); // false(b 被修改)

// 使用 &&(短路)
b = true; // 重置 b
if (a && (b = false)) { // a=false,直接跳过右边计算
    System.out.println("不会执行");
}
System.out.println(b); // true(b 未被修改)

|、||

boolean x = true;
boolean y = false;

// 使用 |(非短路)
if (x | (y = true)) { // 即使 x=true,仍然会计算 y=true
    System.out.println("执行");
}
System.out.println(y); // true(y 被修改)

// 使用 ||(短路)
y = false; // 重置 y
if (x || (y = true)) { // x=true,直接跳过右边计算
    System.out.println("执行");
}
System.out.println(y); // false(y 未被修改)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值