首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果值在10.20范围内,则返回较大的值

问如果值在10.20范围内,则返回较大的值
EN

Stack Overflow用户
提问于 2017-01-30 12:13:40
回答 2查看 632关注 0票数 1

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

代码语言:javascript
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-30 12:17:25

第一个if语句确保a不小于b (如果a小于b,则交换a和b --这就是涉及temp变量的3个赋值语句所做的)。

如果第二个if语句在所需范围内,则返回a (此时我们知道a >= b)。

如果没有,则如果第三个If语句在所需范围内,则返回b。

否则将返回0(当a和b都不在所需范围内时)。

票数 2
EN

Stack Overflow用户

发布于 2017-01-30 12:22:03

它指出,如果b的值大于a的值,则切换2值。例如,如果a = 10和b = 15

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

int temp = a; temp的值为10。

a = b; a将取值15

b = temp; b将取值10

因此,如果a和b的值大于a的值,则b和a的值将发生切换。因此,a具有更大的价值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41935683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档