2013-03-06 77 views
0

我有什麼事情,每當我嘗試編譯它,它不斷給我這樣的錯誤了一個問題:異常螺紋主java.util.InputMismatchException錯誤

Exception in thread "main" java.util.InputMismatchException 
at java.util.Scanner.throwFor(Unknown Source) 
at java.util.Scanner.next(Unknown Source) 
at java.util.Scanner.nextInt(Unknown Source) 
at java.util.Scanner.nextInt(Unknown Source) 
at Person.main(Person.java:38) 

所有我想要的是用於用戶可以輸入他們的年齡和姓名,並將其存儲在「年齡」和「名稱」變量中,然後將其打印在底部字符串中。如果有人想幫我清理我的代碼,它也不會傷害..

import java.util.*; 
import java.io.*; 
import java.util.Scanner; 

public class Person 

{ 

public static void main(String[]args) 

    { 

    int age; 
    int name; 

    Scanner scan = new Scanner(System.in); 

    System.out.println("Enter in your age."); 
    age = scan.nextInt(); 

    if (age < 18) 

    { 
     System.out.println("So you're a kid, huh? That's fine."); 
    } 

    else if (age >= 18) 

    { 
     System.out.println("Ah, and adult! Good."); 
    } 

    @SuppressWarnings("resource") 
    Scanner in = new Scanner(System.in); 

    System.out.println("Enter in your name"); 
    name = in.nextInt(); 

    System.out.println("So you're " + age + " years old and your name is " + name); 


} 
} 

回答

3

問題

​​

解決方案

String name; 
... 
System.out.println("Enter in your name"); 
name = in.nextLine(); 
+1

請記住,OP將'name'定義爲'int'。 'name' **應該被定義爲'string'。 – 2013-03-06 14:19:23

+1

@ edmastermind29不錯的接球+1 – 2013-03-06 14:21:09

1

爲什麼要命名整數? int name;

我懷疑你使用字母字符輸入你的名字......並且在該行所得到的例外:name = in.nextInt();

name不應是一個整數。它應該是是一個字符串。

因此,string name;name = in.nextLine();

+0

啊,簡單的錯誤,謝謝! – Xiam 2013-03-06 14:19:14

0

這意味着你的程序試圖讀取一個值,作爲一個整數不是一個整數。

使用name = in.nextInt();

時應該string.not INT

相關問題