Java 如果在10到20之间,则返回较大的值
我试图在codingbat上解决这个问题,问题是给定2个正的int值,返回10到20范围内的较大值,或者如果两者都不在该范围内,则返回0。下面给出了解决方案,但我无法理解第一部分,因为注释中说较大的值是a,但代码中说(b>a),这意味着什么:int temp=a;a=b;b=温度;。谁能解释一下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) {
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
ifb
更大,因此在以下部分中,a
始终是更大的值因为前面的部分确保了a
大于或至少等于b
。感谢大家的帮助。感谢你们的解释。这个例子真的很有帮助,我把temp想象成一个容器,你把10放入其中,然后把15分配给a,把10分配给b,交换完成。temp
是一个变量,就像一样de>a
和b
是。它仅在if
语句中使用,以便交换这两个值。请注意,它可以有任何名称(Java可以接受的任何名称,您可以在此处找到更多信息:),例如,它可以命名为c
。非常感谢您的回答