Java 输入字母时出错&;请求的符号而不是Int
我是一名学生,正在编写这个程序,该程序将Tsubo转换为(ft²)。我对这个源代码没有任何问题,但我担心我可能会因为在测试中遇到的问题而失分。问题是,当要求输入整数时,如果输入字母或符号,则会出现错误,导致程序完全停止。这是我的方法:Java 输入字母时出错&;请求的符号而不是Int,java,Java,我是一名学生,正在编写这个程序,该程序将Tsubo转换为(ft²)。我对这个源代码没有任何问题,但我担心我可能会因为在测试中遇到的问题而失分。问题是,当要求输入整数时,如果输入字母或符号,则会出现错误,导致程序完全停止。这是我的方法: public static void tsubo(){ Scanner keyboard = new Scanner(System.in); int tsubo; double product; System.out.println
public static void tsubo(){
Scanner keyboard = new Scanner(System.in);
int tsubo;
double product;
System.out.println("\nPlease enter Tsubo to convert to (ft²): ");
tsubo = keyboard.nextInt();
product = tsubo * 35.58;
System.out.println("Your conversion equals\n" + product + "(ft²)" + "\n");
}
当要求输入整数时输入字母或符号时,如何防止发生此错误?int变量tsubo尚未初始化。本地变量不会在Java中自动初始化。通过运行您编写的代码,调用
tsubo=keyboard.nextInt()当使用字母或符号调用时,code>抛出java.util.InputMismatchException
从:
由扫描程序引发,以指示检索到的令牌与预期类型的模式不匹配,或者该令牌超出预期类型的范围
在您的情况下,您所要做的就是将该行包装在一个try-catch块中并结束程序,这样它就不会尝试计算任何内容:
try {
tsubo = keyboard.nextInt();
} catch(InputMismatchException e) {
System.out.println("Please input a number, not a letter or symbol.");
return;
}
输入符号或字母后,将打印:
Please input a number, not a letter or symbol.
变量在使用前会被初始化。这是可以的(并且是推荐的)。