php打印五颗星?

原理就是利用循环,这里使用的是while。

代码如下:

<?php $line = 1;
    while($line <=5) {
        //初始空格数和星星数
        $kg = $xx = 1;
        //计算:每行星星前的空格 = 总行数 - 当前所在行数
        $hang_kg = 5 - $line;
        //计算:每行星星数 = 当前行数 *2 - 1;
        $hang_xx = $line *2 - 1;
        //循环每行的空格
        while($kg <= $hang_kg) {
            echo "&nbsp;";
            ++$kg;
        }
        //循环每行的星星
        while($xx <= $hang_xx) {
            echo "*";
            ++$xx;
        }
        echo "<br>";
        ++$line;
    }

首先先了解while循环

  while(判断条件){

    代码

  }

  如果直接打个”true“的话,那就拥有的陷入死循环了。只有给个初值,然后在小于或大于这个范围循环才是王道!

而这金字塔效果,其实也是通过空格和星星的个数一行一行的叠加出来的。并且总共有几行。

首先要知道一行要有几个空格

  第一行4个

  第二行3个

  第三行2个

  第四行1个

  第五行0个

  于是有五行,每行是总行数 - 1;这就为循环打下基础了。

然后是知道每一行的星星数

  第一行1个

  第二行3个

  第三行5个

  第四行7个

  第五行9个

  于是每行等于 n=n*2-1;就是奇数的公式

那么当知道这两个关键,就进行循环吧!

  先给个行数 $line=1;

  用来做循环变量:

    while($line <=5){

      //这里是空格和星星的循环代码

      echo "<br>";

      ++$line;

    }

  循环5次,行数就出来了!

  

  然后再在里面补空格和星星,即:

    先给空格的个数定义个变量,$kg=1;

    然后获得每一行的空格数,并定义变量:$hang_kg = 总行数5 - 当前行数$line;

    于是循环当前个数,即:

      while($kg <= $hang_kg){

        echo "&nbsp;";

         ++$kg;

      }

    这是单行循环的个数,如上面是初始为1,小于等于4,所以有四个空格

    当镶在上面while($line<=5){}的循环里后,在第二行就变成了:初始值为1,但小于等于3(因为是第二行,所以总行数5 - 第二行2),所以有三个空格。

    

    而有了空格,没星星也不成效果啊!

    所以同上述的一样。

      定义个初始星星变量:$xx = 1;

      然后计算星星数,定义变量:$hang_xx = $line * 2 - 1;  //当前行数乘以2减1

      循环:while($xx <= $hang_xx) {

           echo "*";

           ++$xx;

         }

      同理,在空格后面追加星星的个数。

      第一行乘以2-1,有一颗

      第二行乘以2-1,有三颗

    因为各自独立,所以是并列关系

    

//循环每行的空格
        while($kg <= $hang_kg) {
            echo "&nbsp;";
            ++$kg;
        }
        //循环每行的星星
        while($xx <= $hang_xx) {
            echo "*";
            ++$xx;
        }

然后再追加外面的大循环

while($line <=5) {
        //循环每行的空格
        
        //循环每行的星星
        
        echo "<br>";
        ++$line;
    }

哎!原本想追求精简,简单易懂。结果写着写着字就多了!

还是不熟悉啊!

话说我要是写小说也能这么能水,也总比半天憋不出半个字强啊!

只可惜,写不出啊!明明都积累了那么多素材。

还是说,这就充分体现了,何为现实的不如意?

话说这现实先生可真不容易啊!

原文地址:https://www.cnblogs.com/yinwangyizhi/p/9408194.html