【问题标题】:Does logical or ignores second statement if first is true [duplicate]如果第一个为真,则逻辑或忽略第二个语句[重复]
【发布时间】:2014-06-27 00:56:17
【问题描述】:

在 Java (Eclipse) 中,当有诸如 if (true || false) 之类的语句时,它最终会为真,但问题是如果第一个语句为真,编译器会评估第二个语句吗? 这对我很重要,因为如果变量为 null 或者它具有某个值,我需要执行一个操作。 我的声明看起来像if (array == null || array[i] < array[j])。 您可以看到我的问题的原因,因为如果数组设置为 null 那么第二个语句将产生错误。 那么,array == null 的 true 是否就足够了,还是编译器也会评估 array[i] < array[j])

【问题讨论】:

    标签: java eclipse logical-or


    【解决方案1】:

    不,不会的。

    • 使用布尔运算符||,如果第一项是true,第二项不会 进行评估。
    • 使用按位运算符 | 计算两个术语

    同样...

    • 使用布尔运算符 &&,如果第一项是 false,则不会计算第二项
    • 使用按位运算符 & 计算两个项

    Java 运算符文档here

    【讨论】:

    • 谢谢!我本可以在我的表达上对其进行测试,但达到我可以调试它的地步还很遥远,做所有这些工作并最终修复它是一种耻辱。
    • @SharonJDDorot 不客气。
    • @SharonJDDorot - 看看 Groovy 控制台 (groovyconsole.appspot.com) - 对于放入这些小 sn-ps 非常有用。
    • 完美答案@Mena
    猜你喜欢
    • 1970-01-01
    • 2017-08-23
    • 2013-05-12
    • 2017-12-11
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多