0

我不断error message从输出中得到一个

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.nextDouble(Unknown Source)
    at test1.TC1.main(TC1.java:11)

但在顶部它没有任何错误

package test1;

import java.util.Scanner;

public class TC1 {

    public static void main(String[] args){
        double name, age, answer;
        Scanner IN = new Scanner (System.in);
        System.out.println("Whats yor name?");
        name = IN.nextDouble();
        System.out.println("How old are you?");
        age = IN.nextDouble();
        answer = age + name;
        System.out.println(answer);
    }
}
4

3 回答 3

1

name实际上是 double 类型的变量。但也许您要的是字符串类型的名称。

更改名称和使用类型 name = IN.nextLine();

于 2013-09-14T14:04:05.067 回答
0

尝试这个:

将变量的类型更改为,String而不是double,并使用Scanner.next()

public class TC1 {

    public static void main(String[] args){
        String name, age, answer;
        Scanner IN = new Scanner (System.in);
        System.out.println("Whats yor name?");
        name = IN.next();
        System.out.println("How old are you?");
        age = IN.next();
        answer = age + name;
        System.out.println(answer);
    }
}
于 2013-09-14T14:08:18.500 回答
0

当您提供非数字输入时,将引发此异常。

在您的情况下,您已将name声明为double,并且我很确定您在其中输入了非数字值,例如 Travis 或 Lita :)

所以要么将 name 声明为 String 并使用 IN.next() 要么尝试输入一个数值:)

于 2015-09-30T12:39:54.050 回答