Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输入字母时出错&;请求的符号而不是Int_Java - Fatal编程技术网

Java 输入字母时出错&;请求的符号而不是Int

Java 输入字母时出错&;请求的符号而不是Int,java,Java,我是一名学生,正在编写这个程序,该程序将Tsubo转换为(ft²)。我对这个源代码没有任何问题,但我担心我可能会因为在测试中遇到的问题而失分。问题是,当要求输入整数时,如果输入字母或符号,则会出现错误,导致程序完全停止。这是我的方法: public static void tsubo(){ Scanner keyboard = new Scanner(System.in); int tsubo; double product; System.out.println

我是一名学生,正在编写这个程序,该程序将Tsubo转换为(ft²)。我对这个源代码没有任何问题,但我担心我可能会因为在测试中遇到的问题而失分。问题是,当要求输入整数时,如果输入字母或符号,则会出现错误,导致程序完全停止。这是我的方法:

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()抛出
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.

变量在使用前会被初始化。这是可以的(并且是推荐的)。