繁体   English   中英

While循环忽略try-catch

[英]While loop ignoring try-catch

我运行while循环,以确保用户输入正确的信息。 但是,它不会循环询问用户。 例如,如果我在寻找整数时输入“ k”,它将不会通过任何程序,而是什么也不会输出,并且程序被卡住。 我发现了与此问题类似的问题 ,但是提供的解决方案仍然无法正常工作。 在我的程序跳过while循环并继续之前,现在它陷入了永恒。

while (errorLoop) {
    try { 
        if (kb.hasNextInt()) {
            Player.setBet(kb.nextInt()); 
        } 
    } 
    catch (InputMismatchException e) {
        System.out.println("Please enter a positive number."); 
    } 
    if (Player.getBet() > 0) { 
        errorLoop = false; 
    } 
}

您的代码不会忽略try-catch,它根本不会抛出InputMismatchException,因为在调用kb.nextInt()之前,您确保可以将下一个输入解析为int(通过检查kb.hasNextInt()是否为true)。 。

您可以删除try-catch:

while (errorLoop) {
    if (kb.hasNextInt()) {
        Player.setBet(kb.nextInt()); 
        if (Player.getBet() > 0) { 
            errorLoop = false; 
        } else {
            kb.nextLine();
            System.out.println("Please enter a positive number."); 
        }
    } else {
        kb.nextLine();
        System.out.println("Please enter a positive number."); 
    }            
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM