请帮助您理解此问题的解决方案。
给出2个正整数值,返回在10..20(含)范围内的较大值,如果两个都不在该范围内,则返回0。
max1020(11,19)→19 max1020(19,11)→19 max1020(11,9)→11
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;
}
我不明白第一个IF语句块。请帮助理解这一部分。
if (b > a) {
int temp = a;
a = b;
b = temp;
}
谢谢
答案 0 :(得分:1)
如果b大于a,则此代码交换两个数字。这将确保在此代码之后,您知道a将大于b。由于您需要返回介于10到20之间的较大值,因此如果满足条件,则需要首先检查较大的数字。下面的代码可确保您首先检查较大的数字。
if (b > a) {
int temp = a;
a = b;
b = temp;
}
// Knowing a is bigger, just check a first
答案 1 :(得分:0)
if (b > a) {
int temp = a;
a = b;
b = temp;
}
如果b大于a。这部分代码交换值,例如:
如果a = 8并且b = 10之后,您将拥有a = 10和b = 8。
临时帮忙交流。
希望对您有帮助!