You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AP CSA考试备考:stars(5)递归方法执行逻辑解析求助

AP CSA递归方法stars(5)执行详解

先看完整方法代码:

public static void stars(int num)
{
    if (num == 1)
    {
        return;
    }
    stars(num - 1);
    for (int i = 0; i < num; i++)
    {
        System.out.print("*");
    }
    System.out.println();
}

为什么不会无限循环?

递归的核心是终止条件:当num == 1时,方法直接return,不会继续调用自身,所以递归会在num=1时停止,不存在无限循环。

分步拆解stars(5)的执行流程

递归是先“递推”到最底层,再“回溯”执行后续代码,具体步骤如下:

  1. 调用stars(5):num≠1,先执行stars(4),自身的for循环暂时不执行
  2. 调用stars(4):num≠1,执行stars(3),自身的for循环暂时不执行
  3. 调用stars(3):num≠1,执行stars(2),自身的for循环暂时不执行
  4. 调用stars(2):num≠1,执行stars(1),自身的for循环暂时不执行
  5. 调用stars(1):num==1,直接return,回到stars(2)的调用位置
  6. 执行stars(2)的for循环:打印2个*后换行 → 输出**
  7. 回到stars(3)的调用位置,执行for循环:打印3个*后换行 → 输出***
  8. 回到stars(4)的调用位置,执行for循环:打印4个*后换行 → 输出****
  9. 回到stars(5)的调用位置,执行for循环:打印5个*后换行 → 输出*****

最终输出结果

**
***
****
*****

内容的提问来源于stack exchange,提问作者Theo Brundin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 08:24:55