2013-03-06 70 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