不能使String等于方法并将字符串转换为数字一起工作。

时间:2017-06-30 07:21:21

标签: java loops if-statement

这是一个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);

3 个答案:

答案 0 :(得分:0)

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,只需在初始化时

答案 1 :(得分:0)

当你输入' y' NumberFormatException即将到来,因此您需要处理此异常,然后您可以在键入' y'后退出循环。

答案 2 :(得分:0)

用于扫描程序方法nextInt()nextLine()来读取输入。

EX: -

Scanner scan = new Scanner(System.in);

然后我们可以使用scan.nextInt()来获取get int

我们可以使用scan.nextLine()获取字符串

https://www.tutorialspoint.com/java/util/scanner_next.htm
此链接可能对您有所帮助。

抱歉我的英语。