【问题标题】:How can I write a if statement with multiple conditions?如何编写具有多个条件的 if 语句?
【发布时间】:2016-11-29 21:17:43
【问题描述】:

我正在尝试编写一个 if 语句,其中如果 a 为真,如果 (b 或 c) 为真,则执行某些操作。

我已经写了这个,但我不确定它的逻辑是否正确。

if (critStatus == false && badStatus == true || pmBadStatus == true) {
//do something
}

基本上如果 critStatus 为 false && 如果 badstatus pmbadstatus 为 true 那么它应该做点什么。

【问题讨论】:

  • 听起来你的意思是if (!critStatus && (badStatus || pmBadStatus))
  • 我喜欢 OP 如何在提问时直接输入他自己问题的答案。 :P
  • 顺便说一句,f==true 应该写成ff==false 应该写成!f
  • 谢谢大家,我不确定,我知道有些东西不见了。但这不值得为 =/ 获得 -3。

标签: java boolean-logic boolean-operations


【解决方案1】:

(A&&B)||CA&&(B||C) 的计算方式不同,顺序取决于括号的位置。

你是说

if (!critStatus && (badStatus || pmBadStatus)) {
    //do something
}

【讨论】:

    【解决方案2】:

    && 的优先级高于||,所以你必须这样写你的条件:

    if (critStatus == false && (badStatus == true || pmBadStatus == true))
    

    请参阅 Java 优先规则 here

    【讨论】:

    • 不要将布尔变量与truefalse 进行比较。使用if (!critStatus && (badStatus || pmBadStatus))
    【解决方案3】:
    if (critStatus == false && (badStatus == true || pmBadStatus == true)) {
    //do something
    }
    

    你只需要括号。括号前的语句是:

    if ((a = true and b = true) OR c = true){
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多