检查If语句中的三个条件中的哪一个是真的如果,如果不是?

时间:2016-12-04 07:31:32

标签: java if-statement

假设:3个条件中的1个将为0.

如果我的if语句定义如下:

   if ((condition1 == 0) || condition2 == 0) || condition3 == 0)) {
     do something 
   }

和其他3个if语句:

else if (condition1 != 0) {
  do something
  print which of condition 2 or 3 was 0
}

else if (condition2 != 0) {
  do something
  print which of condition 1 or 3 was 0
}

else if (condition3 != 0) {
  do something
  print which of condition 1 or 2 was 0
}

我在考虑在第一个if语句中放置嵌套的if语句,看看三者中哪一个是0.

2 个答案:

答案 0 :(得分:0)

想出了什么。尽管如此,使用这么多if语句是多么可怕的做法。 (假设memorizeCondition存储在ifs的方法之外

if (condition1=0 || condition2 = 0 || condition3 = 0)
    if(condition1 = 0)
        memorizeCondition = condition1;
    if(condition2 = 0)
        memorizeCondition = condition2;
    if(condition3 = 0)
        memorizeCondition = condition3;
else if (condition1 != 0)
    memorizeCondition;
    calculate condition1;
    calculate other condition;
else if (condition2 != 0)
    memorizeCondition;
    calculate condition2;
    calculate other condition;
else if (condition3 != 0)
    memorizeCondition;
    calculate condition2;
    calculate other condition;

答案 1 :(得分:0)

怎么样:

    if ((condition1 == 0) || condition2 == 0) || condition3 == 0)) {
      do something 
    } else {
      if (condition1 != 0) {
        do something
        print which of condition 2 or 3 was 0
      }
      if (condition2 != 0) {
        do something
        print which of condition 1 or 3 was 0
      }
      if (condition3 != 0) {
        do something
        print which of condition 1 or 2 was 0
      }
    }

如果有超过3个条件,您可以将它们添加到集合中,然后使用stream.filter()删除所有不匹配的条件。