java - 需要从数字列表中显示最大和最小等级
问题描述
我需要输入成绩列表并在输入字符时停止代码。然后它将显示最高等级和最低等级。
我创建了一个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);
}
}
我会输入:50
66.85
73.5
78.9
77
q。
输出将是: 最高等级是:78.9
最低等级是:50.0
解决方案
while 循环中没有中断条件。扫描仪将继续侦听输入。只有输入非双字符时,循环才会退出。
您实际上也没有在每次迭代中获得下一个输入。您需要input.nextDouble()
在循环内调用。
如果您希望它自行退出,则需要添加中断条件。例如,您可以在输入一定数量后停止,例如:
int gradeCount = 0;
while(input.hasNextDouble() && gradeCount < 6) {
grades = input.nextDouble();
gradeCount += 1;
// your logic here
}
推荐阅读
- php - Ajax 和 Laravel - 无法基于动态下拉选择填充文本框
- angularjs - 当我使用角力矩 Piker 时,错误 Jalali 年 3503 无效
- php - 我向其发送邮件的每个用户都会重复 PHP Mailer 邮件
- django - Django admin 自定义表单提交强制从下拉列表中选择操作
- algorithm - 使用增加良好建立关系的精益合并排序
- javascript - Angular 2 nativeElement.focus 在移动设备上不起作用
- python - 创建一个图形,节点为带有文本的圆圈
- php - 如何检查用户是否更改了帖子值?
- c - C 静态范围语义
- ruby-on-rails - 如何循环遍历 Ruby 数组中的哈希