Java 编码BAT上的布尔错误

Java 编码BAT上的布尔错误,java,Java,我正在做一个关于codingbat的编码练习,这就是我应该做的: 给定2个正int值,返回10到20范围内的较大值,如果两者都不在该范围内,则返回0 max1020(11,19)→ 19 max1020(19,11)→ 19 max1020(11,9)→ 11 max1020(9,21)→ 0 我的代码: public boolean IsInRange(int value) { return value >= 10 && value <= 20; } publ

我正在做一个关于codingbat的编码练习,这就是我应该做的:

给定2个正int值,返回10到20范围内的较大值,如果两者都不在该范围内,则返回0

max1020(11,19)→ 19 max1020(19,11)→ 19 max1020(11,9)→ 11 max1020(9,21)→ 0

我的代码:

public boolean IsInRange(int value)
{
  return value >= 10 && value <= 20;
}

public int max1020(int a, int b) {
  if (IsInRange(a) && IsInRange(b))
  return a > b ? a : b;
  else if (IsInRange(a))
  return a;
  else if (IsInRange(b))
  return b;

}

我没有else语句,所以a和b的最后一个输入就不起作用了。 应该是这样的:

public boolean IsInRange(int value) {
    return value >= 10 && value <= 20;
}

public int max1020(int a, int b) {
  if (IsInRange(a) && IsInRange(b))
      return a > b ? a : b;
  else if (IsInRange(a))
      return a;
  else if (IsInRange(b))
      return b;
  else
      return 0;
}
公共布尔值IsInRange(int值){
返回值>=10&&b值?a:b;
否则,如果(IsInRange(a))
返回a;
否则,如果(IsInRange(b))
返回b;
其他的
返回0;
}
public boolean IsInRange(int value) {
    return value >= 10 && value <= 20;
}

public int max1020(int a, int b) {
  if (IsInRange(a) && IsInRange(b))
      return a > b ? a : b;
  else if (IsInRange(a))
      return a;
  else if (IsInRange(b))
      return b;
  else
      return 0;
}