Java 将循环更改为递归方法

Java 将循环更改为递归方法,java,data-structures,Java,Data Structures,你能给我解释一下如何将这个for循环改为recursive吗?我知道recursive是什么,但我一直无法用代码正确打印星星数,因为它只打印第一行星星 任何指导都将不胜感激 以下是我当前的代码: static void printLine(int n) { for (int i=0; i<n; ++i) { System.out.print("*"); } System.out.println(); } 静态无效打印行(int n){ 对于(int

你能给我解释一下如何将这个for循环改为recursive吗?我知道recursive是什么,但我一直无法用代码正确打印星星数,因为它只打印第一行星星

任何指导都将不胜感激

以下是我当前的代码:

static void printLine(int n) {
    for (int i=0; i<n; ++i) {
        System.out.print("*");
    }
    System.out.println();
}
静态无效打印行(int n){
对于(inti=0;i在谷歌上搜索“如何将for循环转换为递归”,有一个类似的答案,还有一篇带有示例的文章

这是一个很大的提示,但基本思想是您的参数存储当前循环状态

for (int i = 1; i <= n; i++)
{
    // ....
}
谷歌搜索“如何将for循环转换为递归”,有一个类似的答案,还有一篇带有示例的文章

这是一个很大的提示,但基本思想是您的参数存储当前循环状态

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

这是你应该能够很容易地在谷歌上搜索到的东西,在询问社区之前,确保你自己尝试找到答案。我不介意回答这样的问题,但我发现如果你先问,然后再看,你不会真正学到任何东西

private static void printStars(int n)
{

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

这是你应该能够很容易地在谷歌上搜索到的东西,在询问社区之前,确保你自己尝试找到答案。我不介意回答这样的问题,但我发现如果你先问,然后再看,你不会真正学到任何东西

private static void printStars(int n)
{

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

家庭作业问题!:)其中哪一部分(无可否认很奇怪)您正在努力解决的需求?您了解什么是递归方法吗?如果是,到目前为止您尝试过做什么?您需要确定基本情况以确定递归调用何时停止。您还需要定义递归情况,即当它不是基本情况时会发生什么。递归情况将打印星号
*
和c所有的
printStars()
带有
行-1
。基本情况将打印最后一颗星,或者什么也不做,这取决于它的定义。我不打算为您编写代码。递归可能很棘手,但这个示例很好,简单,作为一个介绍。问题到底是什么?一行打印n颗星?打印n行n颗星?家庭作业问题关于!:)这其中的哪一部分(无可否认是奇怪的)您正在努力解决的需求?您了解什么是递归方法吗?如果是,到目前为止您尝试过做什么?您需要确定基本情况以确定递归调用何时停止。您还需要定义递归情况,即当它不是基本情况时会发生什么。递归情况将打印星号
*
和c所有的
printStars()
使用
行-1
。基本大小写将打印最后一个星号,或者什么也不做,这取决于它的定义。我不打算为您编写代码。递归可能很棘手,但这个示例很好,简单易懂。问题到底是什么?一行打印n个星号?打印n行n个星号?