Home > Article > Backend Development > 帮忙解释两个for循环
各位大大,这是一个用*输出倒直角三角形的例子,这两个for循环我不是很白,特别是里面的那个,能解释下么,谢谢啦~
for($i=1;$i<15;$i++){ for($j=$i;$j<15;$j++){ echo "*"; } echo "<br>"; }
为什么还要有个变量$j去等于外层的变量$i,再次循环一遍呢?
你首先理解下单个发for循环含义!如果里面不再做一次循环就不会出现3角了,而是竖着的14个*
$j = $i;//是让内层循环的起始值等于外层的值//每次都少输出一个*//外层第一次循环,内层输出14个*//外层第二次循环,内层输出13个*//以此类推只到循环结束
$j = $i;
关于这两个变量,我这样说看你能不能理解。
$i代表的是行数,即第一次循环代表第一行,依次类推,一共十五行。
$j代表的是列数,即每一行有多少列。
把代码稍改动下,输出一个矩形,帮助你理解。改动的地儿:$j=1。
<?php for($i=1;$i<15;$i++){ for($j=1;$j<15;$j++){ echo "*"; } echo "<br>"; }?>
理解for循环
其实可以输出四种直角三角形
$i 可以看做是行, $j可以看做是列
首先看 $i =1;的时候$j =1; j 然后看 $i =2;的时候$j=2;j …………
一次循环,最后得到第一行14个*,共14行,最后一行一个*,不知是否清楚.
多练练九九乘法表的输出和菱形的输出
这个我都能理解唉,i=1的时候 第二个for循环1
$i控制执行的行数。
$j控制每一行输出的*数。
很好理解啊。
因为从第一行开始,你的星号个数就要递减,知道了规律,你再结合代码就容易理解了。其实代码还可以这样写。
for($i=1;$i<15;$i++){ for($j=0;$j<15-$i;$j++){ echo "*"; } echo "<br>"; }