gpt4 book ai didi

java - 输入特定数字后停止的 while 循环

转载 作者:行者123 更新时间:2023-11-30 07:02:34 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,该程序从用户处获取成绩数字,并在输入 -1 时停止。但是,每次我输入-1时,while循环都会继续运行,如何阻止它运行?

import java.util.Scanner;

public class getLetterGrade {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int count = 0;
while (count >= 0)
getGrade();
count++;
System.out.println("You entered" + " " + count + " " + "Student(s)");
}

public static void getGrade() {
Scanner reader = new Scanner(System.in);
double grade;

System.out.println("Welcome to the grade calculator. \n Please enter a numeric grade. \n After the last student in the class, enter a grade of -1.");
grade = reader.nextDouble();

if (grade >= 90)
System.out.println("That's an A");
else if (grade >= 80 && grade < 90)
System.out.println("That's an B");
else if (grade >= 70 && grade < 80)
System.out.println("That's an C");
else if (grade >= 60 && grade < 70)
System.out.println("That's an D");
else if (grade <= 50 && grade > 0)
System.out.println("That's an F");
if (grade == -1)
System.out.println("");
}
}

最佳答案

需要更改一些内容...首先,您的循环不断循环,因为您从未将 count 设置为小于 0,因此条件始终为 true。您还创建了 2 个 Scanner 对象,但只使用第二个对象(在 getGrade() 中)。

尝试此代码,并查看注释以查看更改的所有内容:

    public class getLetterGrade  {

static Scanner reader; //Add reader as member variable

public static void main(String[] args) {
//Scanner reader = new Scanner(System.in); //Remove this unused Scanner
int count = 0;
reader = new Scanner(System.in);

while (getGrade()) //Change the condition here so the loop will continue while getGrade() returns true.
count++;

reader.close(); //Close the Scanner
System.out.println("You entered" + " " + count + " " + "Student(s)");
}

public static boolean getGrade() { //getGrade() returns a boolean...


System.out.println("Welcome to the grade calculator. \n Please enter a numeric grade. \n After the last student in the class, enter a grade of -1.");
double grade = reader.nextDouble(); //Consider using a try/catch block here.


if (grade >= 90)
System.out.println("That's an A");
else if (grade >= 80 && grade < 90)
System.out.println("That's an B");
else if (grade >= 70 && grade < 80)
System.out.println("That's an C");
else if (grade >= 60 && grade < 70)
System.out.println("That's an D");
else if (grade <= 50 && grade > 0)
System.out.println("That's an F");
else if(grade != -1)
System.out.println("Invaled input!"); //Print if 'grade' is something other then the above statements.
if (grade == -1) { //Add brackets
System.out.println("");
return false; //return false if -1 was entered...
}
return true; //else return true
}
}

关于java - 输入特定数字后停止的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40647175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com