• 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;
        }

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

    还是不熟悉啊!

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

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

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

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

  • 相关阅读:
    flink on yarn部分源码解析 (FLIP-6 new mode)
    flink on yarn部分源码解析
    flink window的early计算
    【flink training】 打车热点区域实时统计PopularPlaces
    troubshooting-sqoop 导出 TiDB表数据报com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    Hive2.0常用函数(对编辑器很无语😓)
    Hive正则表达式
    troubleshooting-Container 'PHYSICAL' memory limit
    Hive-查询结果导入到 MySQL
    Hive-复制表
  • 原文地址:https://www.cnblogs.com/yinwangyizhi/p/9408194.html
Copyright © 2020-2023  润新知