在编写bat Logic-2、loneSum 问题时,我输入了下面列出的第一种方法。除了一项测试外,它对所有测试都是正确的。它唯一失败的地方是所有变量都等于同一个整数。但是当我在网上查找解决方案时,我得到了下面列出的第二种方法,并且该方法有效。我认为我的方法和正确的解决方案之间的唯一区别是“else if(a==b && b==c){return 0;}”的位置。我的问题是条件的顺序对“if else”语句重要吗? (我提前为措辞道歉,英语不是我的母语。谢谢。)
public int loneSum(int a, int b, int c) {
int sum = a + b + c;
if(a==b)
{return c;}
else if(b==c)
{return a;}
else if(c==a)
{return b;}
else if(a==b && b==c)
{return 0;}
else
return sum;
}
public int loneSum(int a, int b, int c) {
int sum = a + b + c;
if(a==b && b==c)
{return 0;}
else if(b==c)
{return a;}
else if(c==a)
{return b;}
else if(a==b)
{return c;}
else
return sum;
}
最佳答案
是的,条件的顺序很重要。在您的代码中,您首先测试 if(a==b)
。如果所有 3 个整数都相同,则为 true
并且仅执行 return c;
。它甚至不会影响其余的条件。
在 if
和 else-if
中,仅按顺序评估所有条件,直到找到第一个 true
条件。
首先测试更具体的情况,即首先 if(a==b && b==c)
。
关于java - if else 语句中条件的顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406946/