【发布时间】:2020-02-28 16:56:29
【问题描述】:
我需要输入成绩列表并在输入字符时停止代码。然后它会显示最高等级和最低等级。
我创建了一个while loop,但是当我运行代码时,它一直在循环并且不会停止。
public class MaxMinGrades{
public static void main(String[] args){
double maxGrade = Double.MAX_VALUE;
double minGrade = Double.MIN_VALUE;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
double grades = input.nextDouble();
while(input.hasNextDouble()) {
if (grades > maxGrade) {
maxGrade = grades;
}
if (grades < minGrade) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
我会输入:5066.8573.578.977q。
输出将是:最高等级是:78.9
最低等级为:50.0
【问题讨论】:
-
input.hasNextDouble()将返回true但在循环内没有读取任何内容,因此它将在下一次迭代中返回true并一次又一次地......只要双精度不是已消耗(并且grades始终为50,因为[循环外]仅被读取一次)
标签: java loops while-loop max min