java - 比较整数变量以获取范围内的最大值

标签 java int max min

我无法理解为什么我的代码无法解决我正在尝试解决的这个问题。

问题: 给定 2 个正 int 值,返回 10..20(含)范围内的较大值,如果都不在该范围内,则返回 0。

我的代码:

public int max1020(int a, int b) {
  int max;

  if((a<10 || a>20) && (b<10 || b>20)) {
  max = 0;
  }

  if(Math.max(a,b) >= 10 && Math.max(a,b) <= 20) {
  max = Math.max(a,b);
  } else {
  max = Math.min(a,b);
  }

  return max;
}

每个数字都有效,除了 a = 9 和 b = 21 时,我只是不明白。我哪里出错了?

最佳答案

你不会返回 0 .. 永远 .. 所以 .. 9 小于 10 .. 并且 b 大于 20 所以返回 0 。我认为你得到 9 是因为当两个数字都在界限内时你仍在执行该部分。

公共(public) int max1020(int a, int b) { 整数最大值;

      if((a<10 || a>20) && (b<10 || b>20)) {
      **>> return 0;**
      }

      if(Math.max(a,b) >= 10 && Math.max(a,b) <= 20) {
      max = Math.max(a,b);
      } else {
      max = Math.min(a,b);
      }

      return max;
    }

关于java - 比较整数变量以获取范围内的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456814/

相关文章:

java - 在 Java 中将用户输入(字符串)分配给整数

java - 数据库模型国际化玩法框架

java - Maven 2 站点生成,哪个网站上有关于它的信息

java - 添加图像到java小程序?

Java套接字超时不适用

scala - 为什么有 'Int' **和** 'Double' s?为什么不只上一节课呢?

java - 将非数字字符串转换为整数?

java - 根据用户输入查找最大数字和最小数字(方法)

mysql - 按 max() 排序

arrays - 最大数量数组中总和小于或等于 k ​​的元素