老师我遇到个问题,您帮我分析指点一下

老师我遇到个问题,您帮我分析指点一下

老师我遇到个问题,for循环嵌套我理解不了了 ,比如要输出一个 金字塔 或是一个 菱形 我为啥一点思路都没有 也不知道如何去做,更不知道如何去修改。我的问题出在哪里啊。我该如何解决这一问题。?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

您好,在下列代码中为同学标注了循环的记号,同学根据记号理解哦~

http://img1.sycdn.imooc.com//climg/5c637b0f0001d8a305700375.jpg

首先已经知道要输出一个5行的金字塔,那么便有了1号for循环,它规定了金字塔的行数。

已知金字塔是有一个空白的倒三角和一个三角组成的,那么每行上就会有空格,而2号for循环就规定了每行上存在多少个空格。3号for循环就规定了每行上存在几个*。

最后的echo是在每行输出完之后进行换行,保证下次是从新的一行开始输出内容。

此时具体分析代码:

1号for循环是为了规定金字塔的层数,那么便有了循环小于$n层数的代码。

2号for循环是为了规定每行存在几个空格,而它的规律则是每行的空格都是比层数少一个,当最后一层输出时则没有空格。因此循环条件是层数$n-每次循环的行数$i。

3号for循环是为了规定每行有几个*号,*好的规律是2*层数-1,所以循环条件是2*$i-1。

祝学习愉快!

好帮手慕查理 2019-02-12 19:01:32

您好,同学可以具体描述一下哪个for循环理解不了,以便帮助同学理解。

金字塔和空心菱形的思路:

金字塔的实现思路:

    实现每行相对前一行多2个*的规律。

    首先,接受页面传过来的层数n,循环n,在这个循环中先打印一个由空格组成的倒直角三角形,注意可能有些浏览器对   与 * 的大小解析不相等,所以这里可以输出隐藏样式(style=”color:#FFF;”)的*来保证在浏览器页面呈现的是一个完全的倒三角。

    其次,在层循环中打印一个由星号组成的等腰三角形,三角形星星的个数=2*层数-1。

    最后,输出换行即可。

空心菱形的实现思路:

    用循环实现一个第一行和最后一行是一颗星星,其余中间每一行是行头,行尾各一颗星星的菱形的形状。

    实现菱形的上半部分(想象一个空心的无底边三角形)。

    首先,接受页面传过来的层数,循环这个层数。

    其次,在层数的循环中,先打印一个空的倒直角三角,然后打印一个实心型三角,判断输出行首行尾的星星,中间部分直接打印出空。

    最后,给每层打印换行。

    实现菱形的下半部分(想象成一个空心的无底边的倒三角形)。

    首先,在层数的循环中,先打印一个空的倒三角,然后打印一个实心型三角,同样判断输出行首行尾的星星,中间部分直接打印出空。

    (注意循环层数的条件的变化)。

    其次,给每层打印换行

注:空心菱形的上半部分与下半部分的思路是相同的,区别是上半部分菱形执行的是++操作,下半部分菱形执行的是--操作。

同学遇到问题时可以提出,尽量帮助同学理清如何修改代码的思路。同学可以将自己完成的代码反馈或者提交作业。祝学习愉快!

  • 提问者 代码两万行 #1
    <?php $n=5; //金字塔行数 for($i=1;$i<=$n;$i++){ //在打印*之前,先打印空格 for($k=1;$k<=$n-$i;$k++){ echo"&nbsp;"; } //内层控制每层*的个数 for($j=1;$j<=2*$i-1;$j++){ echo"*"; } echo"<br/>"; } ?> 这段代码就无法理解。无法找到 输出空格的控制规律和原则。。。。没思路
    2019-02-12 19:05:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师