PHP练习--用for循环打印空心菱形,for菱形


思路:1,写出代码打印实心的金字塔

2、修改代码,把金字塔抛空

   3、修改代码,把金字塔倒转

   4、修改倒转后的代码,把金字塔抛空

   5、修改代码,把具体的数进行参数化

1、写出代码打印实心金字的金字塔:

//$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo " ";
        }
        //打印*号
        for($k=1;$k<=2*$i-1;$k++){
            echo "*";
        }

        echo "
"; } ?>
登录后复制

2、

2、改善代码,把金字塔抛空

//$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo " ";
        }
    //打印*号
    for($k=1;$k<=2*$i-1;$k++){
        //打印第一行后最后一行都打*连接
        if($i==1 || $i==5){
            echo "*";
        }else{
        //怎么打空格和*号的问题
            if($k==1 || $k==2*$i-1){
                echo "*";
            }else{
                echo " ";
            }
        }
    }
    echo "
"; } ?>
登录后复制

3、修改代码,把金字塔倒转

//$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo " ";
        }
        //打印*号
        for($k=1;$k<=2*$i-1;$k++){
            //打印第一行后最后一行都打*连接
            if($i==1 || $i==5){
                    echo "*";
            }else{
                //怎么打空格和*号的问题
                if($k==1 || $k==2*$i-1){
                    echo "*";
                }else{
                    echo " ";
                }
            }
        }
    echo "
"; } //倒转 for($i=5;$i>=0;$i--){ //打印空格 for($j=0;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-3;$k++){ echo "*"; } echo "
"; } ?>
登录后复制

4、修改倒转后的代码,把金字塔抛空,并把中间的*号去掉 修改这里的代码(if($i==1 || $i==5){ //去掉$i==5 把中间抛空)

//$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo " ";
        }
        //打印*号
        for($k=1;$k<=2*$i-1;$k++){
        //打印第一行后最后一行都打*连接($i==1 || $i==5) 
            if($i==1){ //去掉$i==5 把中间抛空
                echo "*";
            }else{
                //怎么打空格和*号的问题
                if($k==1 || $k==2*$i-1){
                    echo "*";
                }else{
                    echo " ";
            }
        }
    }
    echo "
"; } //倒转 抛空 for($i=5;$i>=0;$i--){ //打印空格 for($j=0;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-3;$k++){ //怎么打空格和*号的问题 if($k==2*$i-3 || $k==1){ echo "*"; }else{ echo " "; } } echo "
"; } ?>
登录后复制

5、修改代码,把具体的数进行参数化 :把具体数字5改成$n=5代替,随后可以设置$n的值,可以任意放大和缩小

$n=5;
    for($i=1;$i<=$n;$i++){
        //打印空格
        for($j=1;$j<=$n-$i;$j++){
            echo " ";
        }
        //打印*号
        for($k=1;$k<=2*$i-1;$k++){
        //打印第一行后最后一行都打*连接($i==1 || $i==5) 
            if($i==1){ //去掉$i==5 把中间抛空
                echo "*";
            }else{
                //怎么打空格和*号的问题
                if($k==1 || $k==2*$i-1){
                    echo "*";
                }else{
                    echo " ";
                }
        }
    }
    echo "
"; } //倒转 抛空 for($i=$n;$i>=0;$i--){ //打印空格 for($j=0;$j<=$n-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-3;$k++){ //怎么打空格和*号的问题 if($k==2*$i-3 || $k==1){ echo "*"; }else{ echo " "; } } echo "
"; } ?>
登录后复制

效果图:

最后大功告成。顺便说说 ,其实编程不难,难就难在怎么样的思路,怎样去解决问题的方法。所以大家在编程的过程中善于思考。尽管花了半天的时间去想,但是最后想出来了,问题也得到解决,所以平时要多动脑动手去实践。我们的编程能力才能提高。只有实践了,东西才能被理解,知识点也掌握了。

09-15 18:54