不知道Scanner中nextLine的用法?
import java.util.*;public class HandleExceptionDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean continueInput = true;
do {
try {
System.out.print("Enter an integer: ");
int number = scanner.nextInt();
// Display the result
System.out.println(
"The number entered is " + number);
continueInput = false;
}
catch (InputMismatchException ex) {
System.out.println("Try again. (" +
"Incorrect input: an integer is required)");
scanner.nextLine(); //为什么去掉这个会是死循环?
}
} while (continueInput);
}
}
----------------解决方案--------------------------------------------------------
分析:
条件1: continueInput = false;
条件2: while (continueInput); //请问它有可能为真吗?不是死循环是什么?
----------------解决方案--------------------------------------------------------
回复 2楼 gameohyes
能不能说明nextLine的作用? ----------------解决方案--------------------------------------------------------
也就是说,当输入的是字符时
continueInput = false;不会得到执行的.
----------------解决方案--------------------------------------------------------
nextLine--->能够接收空格后的内容
next------->与上反之
----------------解决方案--------------------------------------------------------
nextLine-->不管有没有接收到值都会继续
next---->没有接到,不会继续
----------------解决方案--------------------------------------------------------
回复 6楼 gameohyes
去掉那句nextLine,你试下程序,输入55sd,会是死循环。 ----------------解决方案--------------------------------------------------------
55sd是字符串 不是整型
----------------解决方案--------------------------------------------------------
给你修改了2个地方。
Scanner scanner = new Scanner(System.in);
boolean continueInput = true;
do {
try {
System.out.println("Enter an integer: ");
int number = Integer.parseInt(scanner.nextLine()); //第一个地方
// Display the result
System.out.println(
"The number entered is " + number);
continueInput = false;
}
catch (Exception ex) { //第二个地方 主要是第一处。理解好就行
System.out.println("Try again. (" +
"Incorrect input: an integer is required)");
// scanner.nextLine(); //为什么去掉这个会是死循环?
}
} while (continueInput);
----------------解决方案--------------------------------------------------------