不能使字符串相等方法和将字符串转换为数字一起工作。



这是一个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 此链接可能对您有所帮助。

对不起我的英语。

最新更新