为了账号安全,请及时绑定邮箱和手机立即绑定

关于作业参考代码的问题。

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);?

虽然有同学也问过这个问题,但是还是不太明白

请问重新定义了代表什么意思

为什么没有这段代码,一旦错误后就无法再次输入,而是一直报错

正在回答

3 回答

case -1://返回值为-1,说明输入有误

System.out.println("命令输入错误!请根据提示输入数字命令!");

continue;

看到这句话没,在main方法中

0 回复 有任何疑惑可以回复我~
#1

a4500 提问者

嗯,这时是应该通过continue跳过这次循环,再重新执行下一次while循环的吧, 但是为什么没有问题上的那段代码就会无限报错呢? 再次循环的时候怎么就默认是错误的了?
2015-04-01 回复 有任何疑惑可以回复我~
#2

a4500 提问者

比如先注释掉console = new Scanner(System.in); 然后执行时输入非数字就会无限报错了
2015-04-01 回复 有任何疑惑可以回复我~

不是有注释吗?你看看注释

0 回复 有任何疑惑可以回复我~

是当如果出现异常的时候,可以继续执行程序,而不至于退出程序了。

0 回复 有任何疑惑可以回复我~
#1

a4500 提问者

//从控制台输入命令,用于输入命令和输入图书序号 private static int inputCommand(){ int command; try { command = console.nextInt(); return command; } catch (Exception e) { //若输入字符型或者字符串,则抛出异常,捕获该异常,抛出”错误命令异常“ console = new Scanner(System.in); //返回-1 return -1; } } } 注释是这样的
2015-04-01 回复 有任何疑惑可以回复我~
#2

a4500 提问者

不是有个返回值-1吗,这样也不会终止程序吧
2015-04-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

关于作业参考代码的问题。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信