循环尝试捕获不起作用



如何正确循环此 try catch 语句?据我所知, playerIntInput = reader.nextInt();执行 try 块,并且如果存在异常,它会捕获异常,这应该会导致永远无法到达loop = false。然后它在 catch 块中输出消息,它应该循环回 try 并再次请求输入。相反,我只是从 catch 块获得无限循环的输出。

void CheckInput(int playerIntInput) {
    boolean loop = true;
    while(loop=true) {
        try {
            playerIntInput = reader.nextInt();
            loop = false;
        }
        catch(InputMismatchException e) {
            System.out.println("Invalid character was used, try again.");
        }
    }
}
您使用了

赋值运算符 = ,因此选中时始终loop true,而不是==运算符。 您可以使用while(loop == true),但loop已经是一个boolean。 最简单的解决方案是 while(loop) .

此外,如果 nextInt 中存在错误,它不会消耗输入。 调用catch块中的next()以使用非数字输入并前进。

相关内容

  • 没有找到相关文章

最新更新