为了账号安全,请及时绑定邮箱和手机立即绑定

需要从数字列表中显示最高和最低成绩

需要从数字列表中显示最高和最低成绩

绝地无双 2024-01-28 16:27:22
我需要输入成绩列表,并在输入字符时让代码停止。然后它会显示最高等级和最低等级。我创建了一个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 77q。输出将是: 最高等级是:78.9 最低等级是:50.0
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

public class MaxMinGrades{

  public static void main(String[] args){

    double maxGrade = 0.0;

            double minGrade = 100.0;

            Scanner input = new Scanner(System.in);

            System.out.println("Enter as many student grades as you like. Enter a character to stop.");



            while(input.hasNextDouble()) {

            double grades = input.nextDouble();

              if (grades > maxGrade) {

                maxGrade = grades;

              }

              if (minGrade > grades) {

                minGrade = grades;

              }

            }

            System.out.println("The highest grade is: " + maxGrade);

            System.out.println("The lowest grade is: " + minGrade);

  }

}

这样, 内部就有了中断条件while loop。当某些事情发生变化时,boolean就会检查条件。


查看完整回答
反对 回复 2024-01-28
?
狐的传说

TA贡献1804条经验 获得超3个赞

几点


1. 一旦获得第一个条目,您就需要为 Min 和 Max 分配该值。


2. 变量等级应使用循环内的最新输入进行更新。


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();


    System.out.println("first entry="+grades);

    minGrade = maxGrade = grades;


    while(input.hasNextDouble()) {

        grades = input.nextDouble();

        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);

}

}


查看完整回答
反对 回复 2024-01-28
?
侃侃无极

TA贡献2051条经验 获得超10个赞

while 循环中没有中断条件。扫描仪将继续侦听输入。仅当输入非双字符时循环才会退出。


您实际上也没有在每次迭代中获得下一个输入。您需要input.nextDouble()在循环内调用。


如果你想让它自己退出,你需要添加一个中断条件。例如,您可以在输入一定数量后停止,例如:


int gradeCount = 0;

while(input.hasNextDouble() && gradeCount < 6) {

  grades = input.nextDouble();

  gradeCount += 1;


  // your logic here

}


查看完整回答
反对 回复 2024-01-28
  • 3 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信