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

Java代码中Scanner读取仅停留在第一行,请求排查代码错误

Scanner卡在输入环节的问题排查与解决

可能的原因

  • 代码结构不完整:你提供的代码片段中,while(true)循环、try代码块以及main方法都缺少闭合的大括号,这会导致编译错误,程序无法正常执行。
  • 等待有效整数输入:sc.nextInt()方法会一直阻塞程序,直到用户输入有效的整数并按下回车。如果输入的是字母、符号等非整数内容,会触发InputMismatchException,若未处理该异常,程序会直接终止,看起来像是“卡住”。
  • 输入缓冲区残留问题:若程序中有前置输入操作残留了换行符,可能影响Scanner的读取,但你的代码中是刚初始化Scanner,这种概率较低。

修复方案

  1. 补全代码结构:确保所有代码块都有对应的闭合大括号,这是程序正常运行的基础。
  2. 添加输入异常处理:捕获InputMismatchException,避免程序崩溃,同时清除输入缓冲区的无效内容,防止死循环。
  3. 确保输入符合要求:运行程序后输入整数并回车,程序即可继续执行。

修复后的完整代码示例:

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

public class MyClass {
    public static void main(String args[]) {
        try (Scanner sc = new Scanner(System.in)) { 
            while (true) {
                System.out.println("");
                System.out.println("Enter the numbers to perform operations");
                System.out.println("Enter the first number");
                try {
                    int x = sc.nextInt();
                    // 可在此添加后续运算逻辑
                    System.out.println("你输入的第一个数是: " + x);
                } catch (InputMismatchException e) {
                    System.out.println("请输入有效的整数!");
                    sc.next(); // 清除输入缓冲区的无效内容
                }
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:37:01