Java 尝试读取int时的InputMismatchException
您的计划告诉我们: 输入数组元素,输入字母表以退出 然后,只要输入了Java 尝试读取int时的InputMismatchException,java,java.util.scanner,Java,Java.util.scanner,您的计划告诉我们: 输入数组元素,输入字母表以退出 然后,只要输入了int,就可以循环,并停止循环,但永远不会读取字母字符 那么你的节目告诉我们 输入要在数组中搜索的值 并直接尝试从扫描仪读取int java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scan
int
,就可以循环,并停止循环,但永远不会读取字母字符
那么你的节目告诉我们
输入要在数组中搜索的值
并直接尝试从扫描仪读取int
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 BinarySearch.main(BinarySearch.java:19)
但是输入的下一个字符仍然是字母字符,因为您从未读过它,因此出现了inputmaschException
关于异常的文档非常清楚其原因:
由扫描程序引发,以指示检索到的令牌不存在
匹配所需类型的模式,或者标记已过期
所需类型的范围
现在如何解决这个问题 您可以简单地添加对
输入的调用。下一步
当您退出第一个读取循环以跳过字母字符时:
int value = input.nextInt();
您的计划告诉我们:
输入数组元素,输入字母表以退出
然后,只要输入了int
,就可以循环,并停止循环,但永远不会读取字母字符
那么你的节目告诉我们
输入要在数组中搜索的值
并直接尝试从扫描仪读取int
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 BinarySearch.main(BinarySearch.java:19)
但是输入的下一个字符仍然是字母字符,因为您从未读过它,因此出现了inputmaschException
关于异常的文档非常清楚其原因:
由扫描程序引发,以指示检索到的令牌不存在
匹配所需类型的模式,或者标记已过期
所需类型的范围
现在如何解决这个问题 您可以简单地添加对
输入的调用。下一步
当您退出第一个读取循环以跳过字母字符时:
int value = input.nextInt();