我对java很新,我正在玩扫描仪。这是我的代码:
System.out.print("Name? ");
String name = s.nextLine();
System.out.print("Height? ");
double height = s.nextDouble();
System.out.print("Haircolor? ");
String haircolor = s.nextLine();
System.out.print("Age? ");
int age = s.nextInt();
System.out.print("Job? ");
String job = s.nextLine();
你可能已经看到了,我正在收到关于某个人的意见。现在的问题是,当我尝试读取double时它会给出InoutMismatchException
。阅读此thread后,我将该行更改为double height = Double.parseDouble(s.nextLine());
。这有效,但现在打印“Job?”后它不会停止。该程序只是没有阅读任何内容。
任何人都可以告诉我为什么会这样吗?还有为什么我得到这个例外?我只是怀疑扫描程序可能无法读取不同类型(double,string,int),并且在阅读String
后无法“切换回”到int
。但这似乎有点奇怪。
非常感谢您提前回答。
贝
答案 0 :(得分:1)
试试这个..
System.out.print("Name? ");
String name = s.nextLine();
System.out.print("Height? ");
double height = s.nextDouble();
s.nextLine();
System.out.print("Haircolor? ");
String haircolor = s.nextLine();
System.out.print("Age? ");
int age = s.nextInt();
s.nextLine();
System.out.print("Job? ");
String job = s.nextLine();