我正在尝试创建一个程序,询问用户的姓名,年龄和他们喜欢的食物类型。然后该程序将重复他们所估算的内容。请注意,该计划尚未完成。一旦我写了这段特殊的代码,就会出错。请原谅我在编程方面缺乏智慧。我是一个非常新的学习者。
以下是代码:name = Test.nextDouble();
为了帮助您更好地理解程序,这是我的工作区:
import java.util.Scanner;
class HelloProgram {
public static void main(String args[]) {
Scanner Test = new Scanner(System.in);
double name, age, favfood;
System.out.println("Hello there! Before we start, I would like to ask you a few questions!");
System.out.println("Let us start with your name. What is it?");
name = Test.nextDouble();
System.out.println(name);
}
}
尝试运行程序后,输入我的名字,我收到此错误:
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 HelloProgram.main(HelloProgram.java:9)
正如我之前所说,我确实认为这是因为使用" newDouble()"部分。这是因为" Double"不支持单词?
如果有人可以向我解释,为什么这不起作用并帮助我修复,我将不胜感激。谢谢。
答案 0 :(得分:4)
是" Double"不支持单词。 Double或double是浮点数字类型,仅接受数字。如果您想接受文本,请使用扫描程序的其他方法,例如next()
或nextLine()
,它们都接受字符串,并生成名称和favfood变量字符串:
public static void main (String args[]){
Scanner test = new Scanner (System.in);
String name, favfood;
double age;
System.out.println("Hello there! Before we start, I would like to ask you a few questions!");
System.out.print("Let us start with your name. What is it? ");
name = test.nextLine();
System.out.println(name);
}
其他建议让您和其他人(我们!)更容易理解您的代码:
答案 1 :(得分:0)
double
用于浮点值。我不擅长解释,但您需要使用String
表示文本值,并使用int
表示整数。