【发布时间】:2020-12-21 08:13:01
【问题描述】:
我很难尝试仅使用逻辑规则和使用 OutOfOrder 代码的方法,以使 InOrder 像 OurOfOrder 一样简单。
public class InOrder {
//Don't change this
public boolean OutOfOrder(int n1, int n2, int n3) {
return (n1 > n2) || (n2 > n3);
}
//The original and messy InOrder, leave this as an example of what not to do
public boolean inOrder(int n1, int n2, int n3) {
if (n2 > n1) {
if (n3 > n2) {
return true;
} else {
return false;
}
} else if (n2 == n1) {
if (n3 == n1) {
return true;
} else {
return false;
}
} else {
return false;
}
}
//The new and improved InOrder for part 5, call OutOfOrder
public boolean inOrder5a(int n1, int n2, int n3) {
return true; //replace this
}
//The newer and improved InOrder for part 6, inline
public boolean inOrder5b(int n1, int n2, int n3) {
return true;//replace this
}
}
【问题讨论】:
-
你的意思是
return (n1 <= n2 && n2 <= n3);?您实际上并没有告诉我们这些方法应该做什么。 -
return !OutOfOrder(n1, n2, n3);- 假设它不是“乱序”,它必须是“有序”:/ -
请注意,
if (condition) { return true; } else { return false; }之类的构造可以只替换为return condition;,这已经极大地简化了您的逻辑。 -
请注意,您当前的代码不正确。对于
n1 < n2和n2 == n3的情况,它的行为是错误的。例如n1 = 4、n2 = 6、n3 = 6。你的代码是false虽然它是有序的。
标签: java if-statement return boolean call