需求:当用户输入的类型不匹配时,提示用户输入错误,并重新让用户输入。
Scanner scanner = new Scanner(System.in);
double num;
while (true) {
try {
System.out.println("请输入数字");
//num = new Scanner(System.in).nextDouble();
num = scanner.nextDouble();
break;
} catch (Exception e) {
System.out.println("你输入的不是数字");
}
}
System.out.println(num);
以上代码中,如果用num = scanner.nextDouble();当第一次输入错误时就会进入死循环。
而用num = new Scanner(System.in).nextDouble();结果和预期是一样的。
是不是说每次使用Scanner时就要实例一个新的对象呢?
问题主要是try不要包含sc对象
优化流程:
