老师帮我分析下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <!DOCTYPE html> < html > < head > < meta charset = "UTF-8" > < title >慕课网</ title > </ head > < body > < form action = "#" method = "post" > < input type = "text" name = "num" placeholder = "请输入要打印的行数" > < br />< button text = "submit" name = "button" value = "pyramid" >金字塔</ button > < button text = "submit" name = "button" value = "rhombus" >空心菱形</ button > </ form > <? php //接收用户提交的数据 $num=$_POST['num']; // if($_POST){ // if($_POST['button']=='pyramid'){ // for($ i = 1 ;$i<=$num;$i++){ // for($j=$i;$j<=$num;$j++){ echo '<span style = "color:#FFF" >*</ span >'; } for($a=1;$a<=$i*2-1;$a++){ echo '*'; } echo '< br />'; } } } ?> </ body > </ html > |
第二个for循环还是不太懂,为什么生成一个倒三角,假设循环4次,不看十三个循环,为什么第二次for循环是4行*(用了样式看不到的*,),第一行是4个,第二行是3个,依次递减,这是怎么回事
0
收起
正在回答
2回答
你好,因为第二个for循环外面还有一城=层for循环,比如num=12,所以第一次是循环为1到12,
如果是第二次循环为2到12,比如我们写出具体的$i值,如:
测试一下代码:
1 2 3 4 5 6 7 8 9 10 11 12 | if ( $_POST [ 'button' ]== 'pyramid' ){ for ( $i =1; $i <= $num ; $i ++){ for ( $j = $i ; $j <= $num ; $j ++){ echo '<span style="color:red">' . $j . '</span>' ; } // for($a=1;$a<=$i*2-1;$a++){ // echo '*'; // } echo '<br/>' ; } } } |
如果换成*则为:(从每行12个到每行一个一次递减),
如果解决您的问题请采纳,祝学习愉快!
PHP小白零基础入门
- 参与学习 人
- 提交作业 626 份
- 解答问题 4928 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧