带有If语句的Java递归

带有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

我有一个Java编程问题,为了让这个程序工作,我必须对If语句使用递归。不幸的是,我不能使用循环,这只会使这更难

使用递归编写此函数。 *向用户询问一个介于低和高(含)之间的数字,然后读取。 *持续读取,直到用户输入范围内的数字(包括)。使用递归

 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将调用自身。谢谢,我很欣赏这篇文章!