If statement 如何将else if语句转换为递归语句?

If statement 如何将else if语句转换为递归语句?,if-statement,recursion,If Statement,Recursion,我试图使这段代码递归。如果int x是奇数,它应该打印“R”,如果int x是偶数,它应该打印“L” public String findRL(int x){ s=""; while (x > 1){ if (x%2 ==0){ s = "L" + s; } else{ s = "R" + s; x = x/2; } } } 我试图使

我试图使这段代码递归。如果int x是奇数,它应该打印“R”,如果int x是偶数,它应该打印“L”

public String findRL(int x){
    s="";
    while (x > 1){
        if (x%2 ==0){
            s = "L" + s;
        }
        else{
           s = "R" + s;
           x = x/2;
        }
    }
}
我试图使这段代码递归

第一步应该是让代码正常工作。它被声明为返回
String
,但它从不返回
s
。而且,一旦
x
变为偶数,它很容易进入无限循环。让我们用类似的函数替换它:

public String findRL(int x) {
    String s = "";

    while (x > 1) {
        if (x % 2 == 0) {
            s += "L";
        } else {
            s += "R";
        }
        x /= 2;
    }

    return s;
}
public String findRL(int x) {
    String s = "";

    if (x > 1) {
        if (x % 2 == 0) {
            s = "L";
        } else {
            s = "R";
        }

        s += findRL(x / 2);
    }

    return s;
}
这可能并不等同于您尝试执行的操作,但应该足以了解如何将您的实际代码转换为递归函数:

public String findRL(int x) {
    String s = "";

    while (x > 1) {
        if (x % 2 == 0) {
            s += "L";
        } else {
            s += "R";
        }
        x /= 2;
    }

    return s;
}
public String findRL(int x) {
    String s = "";

    if (x > 1) {
        if (x % 2 == 0) {
            s = "L";
        } else {
            s = "R";
        }

        s += findRL(x / 2);
    }

    return s;
}

如果。。。else语句转换为递归,而
while
循环作为递归,通常在交互中使用隐式循环代替显式循环。

欢迎使用堆栈溢出!其他用户将您的问题标记为低质量和需要改进。我对您的输入进行了重新措辞/格式化,使其更易于阅读/理解。请查看我的更改,以确保它们反映您的意图。但我认为你的问题仍然无法回答。您现在应该回答您的问题,以添加缺少的详细信息(请参阅)。如果你有进一步的问题或反馈给我,请随时给我留言。你的要求真的不清楚。方法本身不打印任何内容,但返回字符串?所以,从澄清您的需求开始,然后告诉我们您的具体处境。