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