这是一个Java初学者的问题。该程序并不复杂,它只是询问用户输入等级,然后在用户输入"y"时完成它,然后计算最大值,最小值,平均值和总计。
我的麻烦是当我键入y时我无法停止循环。 非常感谢,如果有人可以帮助我。我尝试了很多方法来解决这个问题。
do
{
System.out.println("please go on");
input = keyboard.next();
grade = Integer.parseInt(input);
InputTimes++;
if (grade>Maxgrade)
{
Maxgrade = grade;
}
if(Mingrade>grade)
{
Mingrade= grade;
}
if (input.equals("y"))
{
GameOver = true;
System.out.println("yyyyyyy");
break;
}
else
{
GameOver = false;
System.out.println("nnnnnn");
}
totalgradeNoF = grade+totalgradeNoF;
}while(GameOver==false);
Scanner keyboard = new Scanner(System.in);
int Maxgrade = 0, Mingrade = 0, InputTimes = 0, grade = 0, totalgradeNoF = 0;
boolean GameOver = false;
String input = "";
do {
System.out.println("Please go on : ('y' to stop)");
input = keyboard.nextLine();
if (input.equals("y")) {
GameOver = true;
} else {
grade = Integer.parseInt(input);
InputTimes++;
if (grade > Maxgrade) {
Maxgrade = grade;
}
if (Mingrade > grade) {
Mingrade = grade;
}
totalgradeNoF = grade + totalgradeNoF;
}
} while (!GameOver);
一些需要更改的内容:
- 您需要在之前检查"y",如果它不是"y",以便您可以转换为 int
- 你不需要使用
break
所以 - 您可以使用
!GameoOver
而不是GameOver==false
- 不需要在每次迭代时设置
Gameover=false
,只需在初始化时
设置
当你输入'y'时,NumberFormatException即将到来,所以你需要处理这个异常,然后你可以在输入'y'后退出循环。
用于扫描器方法nextInt()
和nextLine()
用于读取输入。
前任:-
Scanner scan = new Scanner(System.in);
然后我们可以使用scan.nextInt()
来获取 int
我们可以使用scan.nextLine()
来获取字符串
https://www.tutorialspoint.com/java/util/scanner_next.htm 此链接可能对您有所帮助。
对不起我的英语。