【问题标题】:Java - Getting min max numbers with Math.max and Math.min [duplicate]Java - 使用 Math.max 和 Math.min 获取最小最大数字 [重复]
【发布时间】:2013-11-10 13:24:19
【问题描述】:

我正在创建一个程序,允许用户输入任意数量的数字,直到输入 0。一旦输入 0,控制台就会显示输入的最高值和最低值。

import java.util.Scanner;
public class NumInput {
  public static void main(String [] args) {
    Scanner s = new Scanner(System.in);
    for (;;) {
      System.out.print("Enter a Value: ");
      int val = s.nextDouble();
      if ( val == 0) break;
      else continue;
    }

  }
}

我不知道如何获得最大值和最小值。我知道我可能应该使用 Math 类,但我不知道如何将它放入我的代码中。

【问题讨论】:

  • 这就是我所说的重复。
  • 你不会通过思考“我知道我应该使用锤子,我只是不知道为什么”来开始构建东西。编程也是如此:如果您的思想停留在“我必须使用数学课”(这是错误的)上,您将永远找不到答案。如果你想成为一名程序员,从问题开始,而不是假设的解决方案。
  • 我试图获得更多帮助,但没有人回复,所以我想我会提出一个新问题。抱歉重复了。

标签: java class math max min


【解决方案1】:

您必须决定是否要使用 Integer、Long 或其他内容。如果您使用 int 值,那么您应该使用 Integer.MIN_VALUE 和 Integer.MAX_VALUE。

【讨论】:

    【解决方案2】:

    你不需要Math.min()也不需要Math.max(),你可以动态确定极值:

    public class NumInput {
      public static void main(String [] args) {
        int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
        Scanner s = new Scanner(System.in);
        do {
          System.out.print("Enter a Value: ");
          int val = s.nextInt();
          if (min > val) min = val;
          if (max < val) max = val;
        }
        while (val == 0);
        System.out.println(min + " " + max);
      }
    }
    

    【讨论】:

      【解决方案3】:

      有几种方法可以做到这一点,但一种是初始化两个变量,比如 min 和 max,然后使用输入的第一个值来初始化它们。然后将检查之后输入的每个值以查看是否高于最大值或低于最小值。如果高于最大值,则将新值分配给最大值。如果低于将新值分配给 min。您可以根据需要使用 Math.max 和 Math.min 进行比较。

      您还可以将所有答案放入 TreeSet 中,它自然会对所有元素进行排序,并将第一个和最后一个元素分别作为最小值和最大值。

      【讨论】:

        猜你喜欢
        • 2017-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-25
        • 2013-11-11
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多