没有获得Java中所需的用户输入

时间:2013-02-20 14:36:54

标签: java

我是java新手,但不是编程,因为我知道C ++。

我只是试图从用户获得整数或字符串形式的输入,但是当我执行我的程序时,它只是静止不动,直到我按回车键。 按"输入"后我的程序和结果给出。

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

    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

流程已完成

2 个答案:

答案 0 :(得分:2)

当你说“它只是静止不动,直到我按下回车”时,它正在按照你所说的去做 - 它正在等你输入int。您只需按Enter即表示没有输入,您的扫描仪无法将其解释为int,因此例外。

如果输入整数,则按回车键,程序应该有效。

答案 1 :(得分:0)

如果输入int作为输入,您的程序应该有效。 (在“等待”程序时按Enter,您可能会出现您正在讨论的异常。)

如果您输入一个字符,例如,您将获得InputMismatchException例外:

  

由扫描程序抛出,表示检索到的令牌没有   匹配预期类型的​​模式,或者令牌不在   预期类型的​​范围。