将循环更改为递归方法

时间:2016-10-19 16:34:48

标签: java data-structures

你能不能向我解释如何将这个for循环更改为递归我知道递归是什么但我无法通过代码正确打印星号数量,因为它只打印第一行星。

任何指导都将不胜感激,

这是我目前的代码:

static void printLine(int n) {
    for (int i=0; i<n; ++i) {
        System.out.print("*");
    }
    System.out.println();
}

2 个答案:

答案 0 :(得分:2)

谷歌搜索&#34;如何将循环转换为递归,&#34;有一个类似的答案here,还有一篇文章的例子here

这是一个非常大的提示,但基本的想法是你的参数存储当前的循环状态。

for (int i = 1; i <= n; i++)
{
    // ....
}

相当于:

private static void PerformAction(int n)
    {
        if (n > 0)
        {
            // Do something
            PerformAction(n - 1);
        }
    }

答案 1 :(得分:1)

这是你应该能够轻松地使用谷歌的东西,确保你在询问社区之前尝试自己找到答案。我不介意回答这样的问题,但是我发现如果你先问一下再往后看就不会学到任何东西。

private static void printStars(int n)
{

if (n>0){
system.out.println("*");
printStars(n-1);
        }
}