0

我是 Java 新手,但我不熟悉 C++ 编程。

我只是想从用户那里获取整数或字符串形式的输入,但是当我执行我的程序时,它只是静止不动,直到我按 Enter 键才执行任何操作。给出了按“Enter”后我的程序和结果。

我的问题是“为什么我没有得到用户输入?

    import java.util.Scanner;

    class roomarea
    {
        public static void main(String[] args)
        {
            Scanner scanner = new Scanner(System.in);
            int input = scanner.nextInt();
            System.out.println("Enterd value is " + input);
        }
    }  

结果是

Start Running math >Command: "C:\Program Files\Java\jdk1.6.0\bin\java.exe"    
-classpath "C:\Documents and Settings\Ahmad Abdullah\My Documents\NaviCoder IDE for    
Java\projects\math\output\classes";"C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar";    
roomarea 

Exception in thread "main" java.util.InputMismatchException at
    java.util.Scanner.throwFor(Scanner.java:840)    at    
    java.util.Scanner.next(Scanner.java:1461)   at    
    java.util.Scanner.nextInt(Scanner.java:2091)    at    
    java.util.Scanner.nextInt(Scanner.java:2050)    at 
    roomarea.main(Main.java:14)  >Run

过程完成

4

2 回答 2

2

当你说“它只是静止不动,直到我按 Enter 键之前什么都不做”,它完全按照你告诉它的去做——它正在等待你输入一个int. 您只是按 Enter 表示没有输入,您的扫描仪无法将其解释为int,因此出现异常。

如果您输入一个整数然后按回车键,您的程序应该可以工作。

于 2013-02-20T14:45:30.547 回答
0

如果您输入 anint作为输入,您的程序应该可以工作。(通过在“等待”程序时按下Enter,您可能会出现您正在谈论的异常)。

例如,如果你输入一个字符,你会得到InputMismatchException异常:

由 Scanner 抛出以指示检索到的令牌与预期类型的​​模式不匹配,或者令牌超出预期类型的​​范围。

于 2013-02-20T14:44:59.593 回答