-4

我正在创建一个程序,允许用户输入任意数量的数字,直到输入 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 类,但我不知道如何将它放入我的代码中。

4

3 回答 3

1

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

于 2013-10-30T18:46:54.560 回答
0

您不需要Math.min()nor 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);
  }
}
于 2013-10-30T18:46:13.987 回答
0

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

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

于 2013-10-30T18:48:12.043 回答