Java 如果在10到20之间,则返回较大的值

Java 如果在10到20之间,则返回较大的值,java,Java,我试图在codingbat上解决这个问题,问题是给定2个正的int值,返回10到20范围内的较大值,或者如果两者都不在该范围内,则返回0。下面给出了解决方案,但我无法理解第一部分,因为注释中说较大的值是a,但代码中说(b>a),这意味着什么:int temp=a;a=b;b=温度;。谁能解释一下 public int max1020(int a, int b) { // First make it so the bigger value is in a if (b > a) {

我试图在codingbat上解决这个问题,问题是给定2个正的int值,返回10到20范围内的较大值,或者如果两者都不在该范围内,则返回0。下面给出了解决方案,但我无法理解第一部分,因为注释中说较大的值是a,但代码中说(b>a),这意味着什么:int temp=a;a=b;b=温度;。谁能解释一下

public int max1020(int a, int b) {
  // First make it so the bigger value is in a
  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;
}
public int max1020(int a,int b){
//首先,使它的价值更大,是在一个
如果(b>a){
内部温度=a;
a=b;
b=温度;
}
//知道a更大,只需先检查a

如果(a>=10&&a=10&&b第一个if语句确保
a
不小于
b
(如果
a
小于
b
,它交换
a
b
,这就是涉及
temp
变量的3个赋值语句所做的)

第二条if语句返回
a
,如果它在所需的范围内(此时我们知道
a>=b

如果不是,则第三条If语句返回
b
,如果它在所需的范围内


否则返回0(当
a
b
都不在要求的范围内时)。

它表示如果
b
的值大于
a
,则切换这两个值。例如,如果
a=10
b=15

if(b>a){
为真,因此将进入if

int-temp=a;
temp将取值10

a=b;
a将取值15

b=temp;
b将取值10


因此,如果
a
b
的值大于
a
的值,则将切换
a
b
的值。因此,
a
将具有较大的值。

如果a大于b,将跳过第一个if,因为a已经大于b。首先,它在a中取较大的值。然后您必须知道that调用return语句后,将跳过其余语句。在a中具有较大的值后,它们将检查a是否在10和20之间。如果是,则返回a。否则,它将检查b是否在范围内。如果是,则返回b,如果它们都不在10和20之间,则返回0第一部分基本上交换
a
b
if
b
更大,因此在以下部分中,
a
始终是更大的值因为前面的部分确保了
a
大于或至少等于
b
。感谢大家的帮助。感谢你们的解释。这个例子真的很有帮助,我把temp想象成一个容器,你把10放入其中,然后把15分配给a,把10分配给b,交换完成。
temp
是一个变量,就像一样de>a
b
是。它仅在
if
语句中使用,以便交换这两个值。请注意,它可以有任何名称(Java可以接受的任何名称,您可以在此处找到更多信息:),例如,它可以命名为
c
。非常感谢您的回答