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

Java新手求助:程序在CMD运行无响应,无法获取用户输入

你的Java代码问题分析与修复方案

嘿,我来帮你拆解这段代码里的问题,顺便给你调整成符合预期的版本!

首先先澄清你说的“运行后毫无反应”——其实程序正在默默等待你输入整数呢!inputa.nextInt()这个方法会暂停程序执行,直到你在CMD里输入一个整数并按下回车,它才会继续走后面的逻辑。不过你的代码里还有几个关键错误,导致逻辑完全不符合你的预期,我给你逐个说明:

1. if语句后的多余分号是致命bug

看这行代码:

if(b<20);

这里的分号;相当于给if语句加了一个“空执行体”,意思是当b<20成立时,什么都不做。后面的int a=5;和打印代码块{...}完全和这个if条件无关,不管b的值是多少,都会执行这部分内容。

2. 代码块逻辑混乱

你应该是想在b<20的时候给a赋值5并打印结果吧?那正确的写法是把赋值和打印逻辑都放进if的代码块里,同时删掉if后面多余的分号。另外,最好加个输入提示,不然很容易误以为程序没反应。

修复后的完整代码

import java.util.Scanner;
class Vedant {
    public static void main(String[] args) {
        Scanner inputa = new Scanner(System.in);
        // 增加输入提示,让用户明确知道要做什么
        System.out.print("请输入一个整数:");
        int b = inputa.nextInt();
        
        if (b < 20) {
            int a = 5;
            System.out.println("Answer = " + a);
        }
        // 可以补充else分支,处理b>=20的情况,让程序逻辑更完整
        else {
            System.out.println("输入的数不小于20,没有对应结果");
        }
        
        inputa.close(); // 用完Scanner记得关闭,养成良好编码习惯
    }
}

修复后的运行流程

  1. 运行程序后,CMD会显示请输入一个整数:,明确提示你输入内容
  2. 输入一个整数(比如15)并按下回车,程序会打印Answer = 5
  3. 如果输入25这类大于等于20的数,程序会打印输入的数不小于20,没有对应结果

这样修改后,程序不仅能正常和你交互,逻辑也完全符合你原本的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:04:19