老师帮我分析下
<!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值,如:
测试一下代码:
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积分~
来为老师/同学的回答评分吧
0 星