七、用for循环对菱形进行打印

<?php
    $n=4;
//A 用for循环打印长方形
    for($i=1;$i<=$n;$i++){
        echo "****<br/>";
    }

echo "<hr/>";


//B    
    for($i=1;$i<=$n;$i++){    //$i确定行数
         for($j=1;$j<=$i;$j++){   //$确定每行输出的个数
           echo "*";
         }
         echo "<br/>";   //每行输出完成后换行
    }

echo "<hr/>";


//C
   for($i=1;$i<=$n;$i++){   //$i确定行数
       for($j=1;$j<=(2*$i-1);$j++){   //$j确定每行输出的个数为2*$i-1
         echo "*";
       }
       echo "<br/>";   //每行输出完成后换行
   }

echo "<hr/>";


//D
   for($i=1;$i<=$n;$i++){    //$i确定输出的行数
       for($m=1;$m<=($n-$i);$m++){   //$m确定每行输出的个数,这里要先输出空格
          echo "&nbsp;";
       }
       for($j=1;$j<=(2*$i-1);$j++){  //$j也是确定每行输出的个数,在输出空格完后输出*
          echo "*";
       }
       echo "<br/>";  //在上边两个for循环每执行完一行后进行换行
   }

echo "<hr/>";


//E
   for($i=1;$i<=$n;$i++){    //$i确定行数
      for($m=1;$m<=($n-$i);$m++){  //$m确定每行输出的个数,$n-$i确定的是每行输出的空格数
         echo "&nbsp;";
      }
      for($j=1;$j<=(2*$i-1);$j++){  //$j确定每行输出的个数为2*$i-1
         if($j==(2*$i-1) || $j==1){  //打印每行的第一个位置和最后一个位置的*
            echo "*";
         }else{
            echo "&nbsp;";   //否则在每一行的其他位置打印空格数
         }
       }
      echo "<br/>";   //执行完成后进行换行操作
   }

echo "<hr/>";



//F
   for($i=1;$i<=$n;$i++){  //$i确定每行数
      for($m=1;$m<=($n-$i);$m++){  //1、$m确定每行应输出的个数,每行输出的空格数为$n-$i
         echo "&nbsp;";
      }
      for($j=1;$j<=(2*$i-1);$j++){  //2、(2*$i-1)确定每行输出的个数
        if($n==$i){           //5、如果最后一行的行数$i等于所给的行数值$n,则依次打印所有星号*
           echo "*";
         }else{
         if($j==1 || $j==(2*$i-1)){   //3、只打印每一行的第一个数字和最后一个数字为*
             echo "*";
         }else{
             echo "&nbsp;";        //4、否则打印星号*
         }
       }
     }
      echo "<br/>";    //每执行完成所有的一行数据操作时进行换行操作
   }

echo "<hr/>";


//G
   for($i=1;$i<=$n;$i++){    //$i确定输出的行数
       for($k=1;$k<=($n-$i);$k++){   //$k确定每行应输出的个数,这里打印的是空格数
          echo "&nbsp;";
       }
       for($j=1;$j<=(2*$i-1);$j++){  //打印出除空格数外的每行的星号为2*$i-1
         if($j==1 || $j==(2*$i-1)){ //判断只需打印出每行的第一位和最后一位星号*(在打印空格后执行)
            echo "*";
          }else{    //否则其余部分打印空格
            echo "&nbsp;";
          }
       }
       echo "<br/>";  //在每一行执行完成后,进行换行操作
   }
  //把以上图形的for循环语句进行反思维,注:$i是从行数减一进行操作的,才能完成菱形对接
   for($i=$n-1;$i>=1;$i--){
       for($k=1;$k<=($n-$i);$k++){
          echo "&nbsp;";
       }
       for($j=1;$j<=(2*$i-1);$j++){
          if($j==1 || $j==(2*$i-1)){
            echo "*";
          }else{
            echo "&nbsp;";
          }
       }
       echo "<br/>";
   }

?>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值