Java中InputMismatchException异常以及不做处理的Scanner的nextLine()方法

运行代码的时候有时会报InputMismatchException异常,这个有很多种原因

       1、查看你输入的数据类型与代码中调用的Scanner方法是否一致(这是最主要的,绝大部分报异常都是这个原因

例如:代码中写的Scanner.nextInt();你输入的时候输入了小数就会报错

       2、不做处理的Scanner的nextLine()方法,比如你需要输入整型和字符串(一般情况下,是指连续输入整形和字符串),有时候Scanner方法调用不正确就会出现这种问题。为什么会出现异常?

首先需要了解nextInt()方法与nextLine()方法

Java中InputMismatchException异常以及不做处理的Scanner的nextLine()方法

Java中InputMismatchException异常以及不做处理的Scanner的nextLine()方法

nextInt()方法接受一个整形字符,不会读取'\n'

nextLine()方法读入一行文本,会读入'\n'

如果此时nextLine()之前刚好有nextInt();  那么这个nextLine()读取的就是'\n',此时如果下面继续用nextInt()读取时,就会报错。

例如:

Java中InputMismatchException异常以及不做处理的Scanner的nextLine()方法

解决办法:就是在nextInt()和nextLine()之间加一个nextLine()来接受'\n';

如下:

Java中InputMismatchException异常以及不做处理的Scanner的nextLine()方法