Java 如何通过只调用一次OutofOrder来进一步简化InOrder代码?

Java 如何通过只调用一次OutofOrder来进一步简化InOrder代码?,java,if-statement,return,boolean,simplify,Java,If Statement,Return,Boolean,Simplify,在试图找到一种简化顺序代码的方法时遇到了困难,因此它只能对顺序以外的代码进行一次单独调用。我很难找到打电话的方法 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

在试图找到一种简化顺序代码的方法时遇到了困难,因此它只能对顺序以外的代码进行一次单独调用。我很难找到打电话的方法

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
}
}

如果要否定结果,请使用以下方法:

public boolean inOrder(int n1, int n2, int n3) {
    return !OutOfOrder(n1, n2, n3);
}

除了Cyril的答案外,您还可以通过对
OutOfOrder
中的逻辑语句求反,得到一个新的
inoorder

OutOfOrder
表示
pvq
(读:p或q)
其中:

  • p
    n1>n2
    ,并且
  • q
    n2>n3
~(pvq)
=
~p^~q
(读:非p非q)

因此:

  • ~p
    n1n2
    ),以及
  • ~q
    n2-n3
因此,您可以将
按顺序重写为

返回(n1