Java Scanner的nextLine()直接跳过问题
学习代码的过程中发现Scanner类的nextLine()方法写在nextFloat()后出现了直接跳过的问题
代码如下
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数值:");
float num1 = scanner.nextFloat();
System.out.println("请输入需要做的运算符号:");
String str = scanner.nextLine();
System.out.println("请输入数值:");
float num2 = scanner.nextFloat();
结果

解决
- 分析
- nextFloat()方法在我们点击Enter键后执行,nextLine()方法也在我们点击Enter键后执行,那么nextFloat()方法是只读取了数字,没有读取\n,这个遗留下来的\n被后面的
nextLine()读取到了所以才出现这个方法被跳过的假象。
- nextFloat()方法在我们点击Enter键后执行,nextLine()方法也在我们点击Enter键后执行,那么nextFloat()方法是只读取了数字,没有读取\n,这个遗留下来的\n被后面的
- 解决办法
- 在nextFloat()方法后用一个nextLine()来读取掉遗留下来的\n
- 问题解决
-代码略

浙公网安备 33010602011771号