【问题标题】:Can the following IF-ELSE block be compressed into a single IF statement?可以将以下 IF-ELSE 块压缩为单个 IF 语句吗?
【发布时间】:2016-03-11 15:43:16
【问题描述】:

我有以下if-else 块:

boolean condA = false, condB = true;

if (!condA) {
    // do WORK_C
} else {
    if (condB) {
        // do WORK_C
    }
}

在写这篇文章时,我意识到我在两种条件匹配中都在做同样的工作。我想知道这是否可以进一步压缩。

如果需要,我愿意提供更多信息/上下文。

【问题讨论】:

  • 我想你想做if (!condA || condB)

标签: java if-statement logical-operators


【解决方案1】:

如果您尝试口头表达您想要执行WORK_C 的条件,您会说“如果 condA 为假或 condB 为真”。这正是您想在if 声明中写的内容:

if (!condA || condB) {
    // do WORK_C
}

【讨论】:

  • 谢谢,我确实想出了if (!condA || condB)。但是,由于某种原因,我无法证明它的合理性。再次感谢您的肯定回答。
【解决方案2】:

您可以使用逻辑运算符 && / || 代替多个 if else 语句。例如

boolean condA = false, condB = true;

if (!condA || condB) {
    // do WORK_C
}

OR (||) 运算符可以让 if 语句在仅满足其中一个条件时为真。

【讨论】:

  • 谢谢,我确实想出了if (!condA || condB)。但是,出于某种原因,我无法证明这一点。再次感谢您的肯定回答。我选择标记以沙梅尔的答案的唯一原因是她/他之前发布过。很遗憾我们不得不选择一个正确答案,因为你们俩都提供了很好的帮助。
猜你喜欢
  • 2019-05-06
  • 1970-01-01
  • 2019-04-09
  • 2016-04-05
  • 1970-01-01
  • 2018-08-19
  • 2019-03-25
  • 2017-10-16
  • 1970-01-01
相关资源
最近更新 更多