private static int inputCommand(){
int command;
try {
command = console.nextInt();
return command;
} catch (Exception e) {
console = new Scanner(System.in);
return -1;
}
}
老师,在catch语句中为什么又创建一个console = new Scanner(System.in);?
这个是,当程序出现异常的时候,将异常捕获后,会继续执行,而不至于出现异常之后,就让程序死掉了
为甚要好给控制台编程一个输入常量啊
private static Scanner console = new Scanner(System.in);
从scanner的原理说了,scanner在要求用户输入的时候,其实是在内存中占用一段内存用于用户输入,你这里,这段内存能存储int类型的数据,而其他类型的就会抛出异常,然而,我们用console.nextInt()调用没把该段内存中的东西提出来,输入字符时,因为现在存入的是字符,提取不出来,他就会一直占用这段内存,导致我们二次输入时,就不会再要求用户输入了,他会继续试图调用该段内存数值,也就一直报错,所有这个new是必须的,不然下次无法输入,这是比较本质的
不懂。。就算为了继续执行干嘛还要重新定义输入,还是console=input.nextInt()不行么