gpt4 book ai didi

java - 下面代码中条件运算符的用法

转载 作者:行者123 更新时间:2023-12-01 23:34:25 26 4
gpt4 key购买 nike

我使用的是条件运算符,如下所示..

String AccessType = (a.isActive() && b.isActive() ? "Active" : "NotActive");

现在我希望如果 a.active 为 true 并且 b.active 也为 true 那么结果应该是 Active 但如果最初 a.active 失败那么 npo 需要测试 b.isactive 只是打印 Not active now 请告知我的上述实现是否正确。

最佳答案

您的实现已经正确。 “惰性”方面(仅当 a.isActive() 返回 true 时才调用 b.isActive())由 &&< 的行为处理 运算符,这是短路

来自section 15.23 of the JLS :

The conditional-and operator && is like & (§15.22.2), but evaluates its right-hand operand only if the value of its left-hand operand is true.

您使用它作为条件运算符的条件(第一个操作数)这一事实是无关紧要的。所以你的代码相当于:

boolean active = a.isActive() && b.isActive();
String AccessType = (active ? "Active" : "NotActive");

不过,我会对您的代码进行两处更改:

  • 我不会使用括号。它们是不必要的。您没有调用方法 - 它只是一个条件运算符。
  • 我会将变量重命名为 accessType。 Java 命名约定对变量使用camelCase

所以:

String accessType = a.isActive() && b.isActive() ? "Active" : "NotActive";

关于java - 下面代码中条件运算符的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928982/

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