带有If语句的Java递归
我有一个Java编程问题,为了让这个程序工作,我必须对If语句使用递归。不幸的是,我不能使用循环,这只会使这更难 使用递归编写此函数。 *向用户询问一个介于低和高(含)之间的数字,然后读取。 *持续读取,直到用户输入范围内的数字(包括)。使用递归带有If语句的Java递归,java,recursion,Java,Recursion,我有一个Java编程问题,为了让这个程序工作,我必须对If语句使用递归。不幸的是,我不能使用循环,这只会使这更难 使用递归编写此函数。 *向用户询问一个介于低和高(含)之间的数字,然后读取。 *持续读取,直到用户输入范围内的数字(包括)。使用递归 public static int readWithinRange(Scanner in, PrintStream out, int low, int high) { // notice I'm passing the Scanner an
public static int readWithinRange(Scanner in, PrintStream out, int low, int high)
{
// notice I'm passing the Scanner and the PrintStream; do NOT read from
// System.in or write to System.out
out.println("Please enter a number.");
int number1=in.nextInt();
if (number1 <= low) {
return low;
} else if (number1 >= high) {
return high;
} else if (number1 >= low && number1 <= high){
return number1;
}
return number1;
/*return low;*/
}
非常感谢您的帮助,积分将得到奖励!提前谢谢你的问题,我怀疑你不太确定递归是什么。阅读摘要 通常,递归方法的形式类似于:
func(value)
if value is base case
return result
else
combine result with func(simpler value)
int readWithinRange(int low, int high) {
int guess = in.nextInt();
if (guess >= low && guess <= high)
return guess;
else
return readWithinRange(low, high);
}
在您的情况下,这将转化为:
func(value)
if value is base case
return result
else
combine result with func(simpler value)
int readWithinRange(int low, int high) {
int guess = in.nextInt();
if (guess >= low && guess <= high)
return guess;
else
return readWithinRange(low, high);
}
int readwithin范围(int低,int高){
int guess=in.nextInt();
如果(guess>=low&&guess如果必须使用递归,为什么不使用它呢?那么你的问题是什么呢?我是Java新手,我不太确定如何解决这个问题。递归是(粗略地说)当一个方法在特定条件下调用自身时。那么,你认为在什么条件下,readWithinRange
可能会调用自身?如果数字在给定范围内,则readWithinRange将调用自身。谢谢,我很欣赏这篇文章!