为什么要在这个基本Java程序中获得InputMismatchException?
为什么要在这个基本Java程序中获得InputMismatchException?,java,exception,input,type-mismatch,Java,Exception,Input,Type Mismatch,nextInt不会吞下保留在缓冲区中的行尾。因此,当您点击1enter时,1被读入第一个分数,然后第二个名称被设置为空字符串 然后解析器尝试将second解释为int,引发异常 您需要在readInt之后丢弃当前行。您可以建议任何方便的方法来丢弃readInt之后的当前行吗?提示:事实上,您在阅读第二个名称时已经这样做了(第二个提示:确保您注释了“丢弃其余行”,否则它可能看起来可疑/奇怪,并使阅读代码的人感到困惑。)再次感谢。否则,过一段时间,我可能也会感到困惑:) String[] names
nextInt
不会吞下保留在缓冲区中的行尾。因此,当您点击1enter时,1
被读入第一个分数
,然后第二个名称
被设置为空字符串
然后解析器尝试将second
解释为int
,引发异常
您需要在
readInt
之后丢弃当前行。您可以建议任何方便的方法来丢弃readInt
之后的当前行吗?提示:事实上,您在阅读第二个名称时已经这样做了(第二个提示:确保您注释了“丢弃其余行”,否则它可能看起来可疑/奇怪,并使阅读代码的人感到困惑。)再次感谢。否则,过一段时间,我可能也会感到困惑:)
String[] names=new String[4];
int[] scores=new int[4];
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter 4 strings and integers:");
for(int i=0;i<4;i++){
names[i]=keyboard.nextLine();
scores[i]= keyboard.nextInt();
}
Enter 4 strings and integers:
first
1
second
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Q2.main(Q2.java:15)
Java Result: 1