gpt4 book ai didi

java - Java 中 & 和 && 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 01:11:09 25 4
gpt4 key购买 nike

我一直认为Java中的&&运算符是用来验证其两个 boolean 操作数是否为true的,使用&运算符对两种整数类型进行按位运算。

最近我发现 & 运算符也可以用来验证它的两个 boolean 操作数是否为 true,唯一的区别是它检查 RHS 操作数,即使LHS 操作数为假。

Java 中的 & 运算符是否内部重载?或者这背后还有其他什么概念?

最佳答案

& <-- 验证两个操作数
&& <-- 如果第一个操作数计算结果为 false,则停止计算,因为结果将为 false

(x != 0) & (1/x > 1) <-- 这意味着先评估 (x != 0) 然后评估 (1/x > 1) 然后执行 &。问题是,对于 x=0 这将引发异常。

(x != 0) && (1/x > 1) <-- 这意味着评估 (x != 0) 并且仅当这是 true 时评估 (1/x > 1) 所以如果你有 x=0 那么这是完全安全的并且不会抛出任何异常如果 (x != 0) 评估为 false 整个事情直接评估为false 而不评估 (1/x > 1)

编辑:

exprA | exprB <-- 这意味着先评估 exprA,然后评估 exprB,然后执行 |

exprA || exprB <-- 这意味着评估 exprA 并且只有当它为 false 时才评估 exprB 并执行 || .

关于java - Java 中 & 和 && 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57684770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com