我正在尝试收集用户的输入,然后表示他们的数字中哪一个是最高的,哪个是最低的。
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 ...)。
你应该交换最高值和最低值,一个数字不可能大于最高值,最高应该以
MIN
开始,最低应该以MAX
开始并将比较移动到for循环中
int highest = Integer.MIN_VALUE, lowest = Integer.MAX_VALUE, number = 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);