初学Java编写用户输入代码无法运行是哪里出错了
Java用户输入功能无法运行的常见问题排查
刚入门Java写用户输入逻辑(绝大多数新手入门用Scanner类实现)跑不起来,基本都是以下几个常见错误,逐行对照检查即可:
- 缺少
Scanner类导入语句:使用Scanner前必须在代码最顶部(所有类定义之外)写导入语句,缺这行会直接编译失败。正确写法:import java.util.Scanner; - 未正确初始化
Scanner实例:只导入类但没创建绑定标准输入流的对象就直接调用输入方法,会触发编译错误。正确初始化写法:Scanner sc = new Scanner(System.in); - 输入方法和接收的数据类型不匹配:比如接收整数时错用
sc.next()、接收带空格的字符串错用sc.next()而非sc.nextLine(),或者实际输入内容和变量声明类型不符,运行时会抛出InputMismatchException。 - 主方法签名写错/类名和文件名不一致:
main方法必须严格写成public static void main(String[] args),公共类名必须和.java后缀的文件名完全一致,否则程序根本无法启动,输入逻辑自然不会执行。 - 输入逻辑写在方法体外:Java可执行代码必须放在方法体内部,直接把输入代码写在类下、方法外会直接编译失败。
下面是可以直接运行的最小输入功能实现代码,可以对照着修改你的代码:
// 顶部导入Scanner类 import java.util.Scanner; // 公共类名必须和文件名完全一致,比如这个类对应的文件名就是InputTest.java public class InputTest { public static void main(String[] args) { // 初始化Scanner,绑定控制台输入流 Scanner sc = new Scanner(System.in); // 提示用户输入,调用对应方法接收内容 System.out.print("请输入任意字符串:"); String inputContent = sc.nextLine(); System.out.println("你输入的内容是:" + inputContent); // 用完关闭输入流 sc.close(); } }
优先检查导入语句、主方法写法、Scanner初始化这三个点,90%的新手输入相关报错都是这三个问题导致的。
内容的提问来源于stack exchange,提问作者Zeros
相关产品推荐
相关产品推荐

