You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java捕获InputMismatchException后如何继续执行while循环?

解决猜数字游戏异常后终止循环的问题

你的问题核心是try-catch块位置错误,且未处理Scanner的错误输入缓存,导致异常触发后直接跳出循环。以下是修复后的完整代码:

import java.util.InputMismatchException;
import java.util.Scanner;

public class GuessingGame {

    public static void main(String[] args) {

        System.out.println("Welcome!");

        int min = 1;
        int max = 10; // 按需求调整为1-10的范围

        // 修正随机数生成公式,确保能生成包含min和max的数值
        int randomNumber = (int) (Math.random() * (max - min + 1)) + min;

        Scanner scanner = new Scanner(System.in);

        int currentAttempt = 1;
        int maxAttempts = 10; // 可按需调整最大猜测次数

        while (currentAttempt <= maxAttempts) {
            System.out.println("Please enter your guess: ");
            
            try {
                int guessingNumber = scanner.nextInt();

                if (guessingNumber < randomNumber) {
                    System.out.println("Too small!");
                } else if (guessingNumber > randomNumber) {
                    System.out.println("Too big!");
                } else {
                    System.out.println("You win!");
                    break; // 猜中后直接退出循环
                }
                currentAttempt++;
            } catch (InputMismatchException e) {
                System.out.println("Not a number - try again!");
                scanner.next(); // 消费错误输入,避免无限触发异常
                // 无效输入不消耗猜测次数
            }
        }
        
        // 循环结束后判断是否耗尽次数
        if (currentAttempt > maxAttempts) {
            System.out.println("Game over! The number was: " + randomNumber);
        }
        
        scanner.close(); // 关闭资源
    }
}

关键修复说明:

  • 调整try-catch位置:将try-catch移入while循环内部,异常处理完成后循环会继续执行,不会直接终止程序。
  • 清理错误输入缓存:在catch块中调用scanner.next(),把用户输入的非数字字符从Scanner缓存中移除,否则下一次nextInt()会重复读取错误输入,导致无限循环。
  • 修正随机数逻辑:原公式生成范围错误,调整后确保能覆盖1-10的所有数值。
  • 添加猜中退出机制:原代码猜中后仍会继续循环,加入break直接终止流程。
  • 补充次数耗尽提示:循环结束后判断是否用完所有猜测机会,给出对应提示。

内容的提问来源于stack exchange,提问作者nostradamus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:52:36