在对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; }
简单的示例,2种相同的方法,if else语句只有不同的顺序:
String method1(int input) { if (input > 1) { return "Foo"; } else if (input > 5) { return "Bar"; } return "Baz"; } String method2(int input) { if (input > 5) { return "Bar"; } else if (input > 1) { return "Foo"; } return "Baz"; }
用输入调用两个方法,比如说9。您认为它们会返回相同的字符串吗?