【发布时间】:2015-01-27 22:36:54
【问题描述】:
这是我输入学号的代码: 当用户以意外的格式输入数字时,我会要求他们通过递归重新输入。但它以不定式递归结束。为什么?
private static int inputStudentNumber(){
System.out.println("Enter the student number:");
int studentNum;
try {
//Scanner in initialized before calling this method
studentNum = in.nextInt();
return studentNum;
} catch(Exception e) {
System.out.println("Invalid input, it can only be integer.");
return inputStudentNumber();
}
}
【问题讨论】:
-
我认为你误解了递归
-
@JorgeCampos 嗯,它真的是递归,只是使用
Exception的出现作为它的返回条件。它让我的眼睛抽搐,但是...... -
in是初始化扫描器吗? -
在
catch块中添加一些日志记录(例如,System.out.println()语句)。找出正在抛出什么样的Exception。 -
@ryanyuyu 是的“in”是来自 System in 的扫描仪
标签: java exception recursion java.util.scanner