【问题标题】:Java - Smallest and Largest values [duplicate]Java - 最小值和最大值 [重复]
【发布时间】:2013-11-11 01:20:57
【问题描述】:
int min, max;

Scanner s = new Scanner(System.in);
System.out.print("Enter a Value: ");
int val = s.nextInt();
min = max = val;

while (val != 0) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();
  if (val < min) {
      min = val;
  }
  if (val > max) {
     max = val;
  }
};
System.out.println("Min: " + min);
System.out.println("Max: " + max);
  }
}

首先,这是一个重复的问题,我真的需要尽快回答,但没有人回答另一个问题,因为它太旧了。也就是说;

我应该创建的程序应该采用无限数量的值,直到输入 0,然后它会显示输入的最小值和最大值。我现在设置它的方式,最小的总是 0。我需要想办法以某种方式忽略 0 作为最小的数字并获得下一个最小的数字。有什么想法吗?

【问题讨论】:

  • 必须是课堂作业。这已经出现在今天 - stackoverflow.com/q/19671453/2864740
  • 是的。我很抱歉重复了,不过我真的需要完成这项工作,谢谢!
  • 哦,也问了其他问题..请更改标题以反映实际问题。无论如何,只需停止循环(例如使用break之前在输入0 时执行最小/最大逻辑。或者,在 min-max 逻辑周围使用保护 (if),以便在输入值为 0 时跳过它,并让循环通过正常终止条件结束。

标签: java max min


【解决方案1】:

这是一种方法。

while (true) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();

  // stop the loop when 0 is entered (prevent min/max calculations)
  if(val == 0)
     break;

  if (val < min)
     min = val;
  if (val > max)
     max = val;
}

【讨论】:

  • 我喜欢在这里使用break。这令人惊讶,因为我很少使用它。
【解决方案2】:

如你所说,将它添加到你的循环条件中怎么样?

while (val != 0) {
    System.out.print("Enter a Value: ");
    val = s.nextInt();
    if (val != 0) {
        if (val < min) {
            min = val;
        }
        if (val > max) {
            max = val;
        }
    } else {
         break;
    }
}

【讨论】:

  • @user2934299 没问题...也许可以接受这个或其他答案,因为它们几乎都一样,如果它可以作为您的答案?
  • 是的,我会接受一个,不过要等 5 分钟。
  • @user2864740 我认为这样更有效,它只需要与值进行一次比较,这将减少运行时间。虽然是最小的任务,但最好是最佳的。
【解决方案3】:

变化:

if (val < min) {
      min = val;
  }

到:

if ((val < min) && (val != 0)) {
      min = val;
  }

【讨论】:

  • 哇,不敢相信我没想到,谢谢!
  • @user2934299 欢迎您
  • @user2934299 您可能还想检查最大值是否为零。
  • 是的,为了安全起见,我会这样做。再次感谢!很抱歉发布重复内容。
【解决方案4】:

你需要改变条件如下,它应该可以工作。

    if (val < min && val>0) {
            min = val;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 2019-04-18
    • 2023-03-18
    • 2021-04-16
    • 2020-03-10
    • 2023-04-02
    • 2013-09-02
    相关资源
    最近更新 更多