【问题标题】:I have a 3 condition and I am using OR inside if condition? is it possible to check what condition was checked? [duplicate]我有一个 3 条件,我在 if 条件内使用 OR?是否可以检查检查了什么条件? [复制]
【发布时间】:2014-05-08 13:51:59
【问题描述】:
if(condition1 || condition2 || condition3){
    //do something here--
}

有没有办法检查哪个条件返回 TRUE 到 --do something here--

【问题讨论】:

  • 要么使用不同的 if 块,要么将条件值分配给某个变量并对其进行条件 ORing
  • 我限制它不使用不同的 if 块
  • 然后执行以下操作:if(condition1||condition2||condition3){if(condition1){}if(condition2){}if(condition3){}}。这真的是唯一的办法。这当然是假设 condition1,2,3 是布尔值。为了效率,如果不在 if 块开始之前声明它们
  • @k_g "我限制它不使用不同的 if 块"
  • 对不起,我以为这意味着另一个独立的 if 块。

标签: java if-statement conditional-statements


【解决方案1】:

您可以将每个条件设为一个方法,然后在每个方法中在返回之前注册条件的结果。

【讨论】:

    【解决方案2】:

    在这种情况下,您有具有相同优先级的运算符,它应该读作

    if( condition1 || (condition2 || condition3 ) {
    
    }
    

    如果 condition1 为真,则不会检查 condition2 和 condition3。

    如果您想知道哪个条件准确评估为真,您必须执行 if else 语句

    if( condition1 )
    {
        // do something when cond1 is true
    }
    else if( condition2 )
    {
       // do something when cond2 is true 
    }
    else if( condition3 )
    {
       // do something when cond3 is true
    }
    

    【讨论】:

    • OP 想要“检查哪个条件返回 TRUE”
    【解决方案3】:

    您不应该关心这三个条件中的哪一个返回 true,否则这意味着您需要使用嵌套的 if 语句(但显然您不希望这样)。

    您可以打印 if 语句中的三个条件,但我看不出重点,或者如果它与调试有关,则使用调试器。

    【讨论】:

      猜你喜欢
      • 2020-01-15
      • 2015-04-26
      • 2018-05-11
      • 2014-07-17
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      相关资源
      最近更新 更多