【发布时间】:2014-09-24 02:44:49
【问题描述】:
我正在尝试编写一个方法,该方法应该递归地要求用户输入一个从 1 到 10 的值。
这就是我所拥有的:
public static void main(String[] args) {
int value = readGoodInput();
System.out.println("The user entered: " + value);
}
public static int readGoodInput(){
int value;
Scanner input = new Scanner(System.in);
System.out.println();
System.out.println("Enter a value: ");
value = input.nextInt();
if (value <= 10 && value >= 1){
return value;
}
else{
readGoodInput();
}
return value;
}
当我运行程序时:
输入一个值: 11
输入一个值: 22
输入一个值: 3
用户输入:11
我的问题是:为什么最后打印的值不是 3,即 1 到 10 之间,而是 11?
提前谢谢你,
滴滴
【问题讨论】:
-
这不是对递归的适当使用。这门课的教练要求你这样做吗?
-
哦,是的......不幸的是。
-
为什么,为什么,为什么,为什么,为什么,为什么,为什么,为什么 ...教师无法弄清楚如何在不强迫学生写出可怕的东西的情况下教授递归代码...