获取最大和最小 Int 而不是输入

问题描述 投票:0回答:2

我正在尝试收集用户的输入,然后表示他们的数字中哪一个是最高的,哪个是最低的。

int highest = Integer.MAX_VALUE, lowest=Integer.MIN_VALUE, number=0;
Scanner input = new Scanner(System.in);
    for (int j=0; j<5; j++) {
       System.out.print("Enter five integers: ");
       number = input.nextInt();
    }
    if (number > highest){    
       highest = number;
    }
    if (number < lowest){
       lowest = number;
    }
    System.out.println("Your highest number is: " + highest);
    System.out.println("Your lowest number is: " + lowest);

它给了我整数可以是的最大值和最小值(214 ...和-214 ...)。

java loops max minimum
2个回答
0
投票

你应该交换最高值和最低值,一个数字不可能大于最高值,最高应该以

MIN
开始,最低应该以
MAX
开始并将比较移动到for循环中

int highest = Integer.MIN_VALUE, lowest = Integer.MAX_VALUE, number = 0;

0
投票

您还可以使用IntSummaryStatistics。它在流式应用程序中经常使用,但也可用于命令式编程。

另外,确定五个整数的提示是

before the loop
,输入值的输入和使用是
inside the loop

IntSummaryStatistics stats = new IntSummaryStatistics();
Scanner input = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
    stats.accept(input.nextInt());
}
System.out.println("Minimum = " + stats.getMin());
System.out.println("Maximum = " + stats.getMax());

或者您可以使用 Math.min()Math.max()

int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE;
for (int i = 0; i < 5; i++) {
     int val = input.nextInt();
     max = Math.max(max, val);
     min = Math.min(min, val);
}
System.out.println("Minimum = " + min);
System.out.println("Maximum = " + max);
© www.soinside.com 2019 - 2024. All rights reserved.