我不明白这个java问题的解决方案

我不明白这个java问题的解决方案,java,Java,请帮助理解此问题的解决方案 给定2个正int值,返回10到20范围内的较大值,如果两者都不在该范围内,则返回0 max102011,19→ 19 max102019,11→ 19 max102011,9→ 十一, public int max1020(int a, int b) { if (b > a) { int temp = a; a = b; b = temp; } // Knowing a is bigger, just check a firs

请帮助理解此问题的解决方案

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

max102011,19→ 19 max102019,11→ 19 max102011,9→ 十一,

public int max1020(int a, int b) {
  if (b > a) {
    int temp = a;
    a = b;
    b = temp;
  }
  // Knowing a is bigger, just check a first
  if (a >= 10 && a <= 20) return a;
  if (b >= 10 && b <= 20) return b;
  return 0;
}

谢谢

如果b大于a,此代码将交换这两个数字。这将确保在此代码之后,您知道a将大于b。由于需要返回10-20之间的较大值,因此如果满足条件,则需要首先检查较大的数字。下面的代码确保您将首先检查较大的数字

if (b > a) {
    int temp = a;
    a = b;
    b = temp;
  }
// Knowing a is bigger, just check a first
如果b比a大。这部分代码交换值,例如:

如果a=8,b=10,那么之后的结果是a=10,b=8

临时工只是帮助交换


我希望它能帮助你

如果b大于a,a和b的值将被交换。如果b大于a,只需更改a和b的值,在第一个示例中,a=11和b=19,因此值将被交换,a变为19和b=11
if (b > a) {
    int temp = a;
    a = b;
    b = temp;
  }
// Knowing a is bigger, just check a first
if (b > a) {
    int temp = a;
    a = b;
    b = temp;
  }