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

PHP嵌套for循环代码逻辑解析:为何首行仅输出一个*?

理解这段PHP代码的输出逻辑

咱们一步一步拆解这段代码的逻辑,你就能明白为啥第一行只输出1个*啦!

第一部分:递增的星号行

先看代码的前半段:

$n = 5;
for ($i = 1; $i <= $n; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        echo ' * ';
    }
    echo '<br>';
}

这里的外层循环$i从1开始,一直到5结束。核心关键在内层循环的条件:$j <= $i——也就是说,内层循环执行的次数完全由当前的$i值决定:

  • 当$i=1时,内层循环只跑1次($j从1到1),所以输出1个*
  • 当$i=2时,内层循环跑2次,输出2个*
  • ...
  • 当$i=5时,内层循环跑5次,输出5个*

所以这部分会输出:




第二部分:递减的星号行

再看代码的后半段:

for ($i = $n; $i >= 1; $i--) {
    for ($j = 1; $j <= $i; $j++) {
        echo ' * ';
    }
    echo '<br>';
}

这部分外层循环$i从5开始,递减到1结束,内层循环的条件还是$j <= $i,所以:

  • 当$i=5时,输出5个*
  • 当$i=4时,输出4个*
  • ...
  • 当$i=1时,输出1个*

这部分会输出:




为啥不是每行5个?

你可能误以为内层循环的条件是$j <= $n(也就是固定和$n比),但实际上代码里写的是$j <= $i——这才是和“每行输出5个”的核心区别!如果把内层循环的条件改成$j <= $n,那每行才会固定输出5个*。

内容的提问来源于stack exchange,提问作者Aleksandar Mihailovic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:33:06