PHP練習--用for循環打印空心菱形


思路:1,寫出代碼打印實心的金字塔

         2、修改代碼,把金字塔拋空

   3、修改代碼,把金字塔倒轉

   4、修改倒轉后的代碼,把金字塔拋空

   5、修改代碼,把具體的數進行參數化

1、寫出代碼打印實心金字的金字塔:

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

        echo "<br/>";
    }

?>

 

2、

2、改善代碼,把金字塔拋空

<?php
    //$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo "&nbsp;";
        }
    //打印*號
    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 "&nbsp;";
            }
        }
    }
    echo "<br/>";
    }

?>

 

3、修改代碼,把金字塔倒轉

<?php
    //$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo "&nbsp;";
        }
        //打印*號
        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 "&nbsp;";
                }
            }
        }
    echo "<br/>";
    }
    //倒轉
    for($i=5;$i>=0;$i--){
        //打印空格
        for($j=0;$j<=5-$i;$j++){
            echo "&nbsp;";
        }
        //打印*號
        for($k=1;$k<=2*$i-3;$k++){
            echo "*";
        }
    echo "<br/>";
    }
?>

 

4、修改倒轉后的代碼,把金字塔拋空,並把中間的*號去掉 修改這里的代碼(if($i==1 || $i==5){ //去掉$i==5 把中間拋空)

<?php
    //$n=5;
    for($i=1;$i<=5;$i++){
        //打印空格
        for($j=1;$j<=5-$i;$j++){
            echo "&nbsp;";
        }
        //打印*號
        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 "&nbsp;";
            }
        }
    }
    echo "<br/>";
    }
    //倒轉 拋空
    for($i=5;$i>=0;$i--){
        //打印空格
        for($j=0;$j<=5-$i;$j++){
            echo "&nbsp;";
        }
        //打印*號
        for($k=1;$k<=2*$i-3;$k++){
            //怎么打空格和*號的問題
            if($k==2*$i-3 || $k==1){
                echo "*";
            }else{
                echo "&nbsp;";    
            }
        }
    echo "<br/>";
    }
?>

 

5、修改代碼,把具體的數進行參數化 :把具體數字5改成$n=5代替,隨后可以設置$n的值,可以任意放大和縮小

<?php
    $n=5;
    for($i=1;$i<=$n;$i++){
        //打印空格
        for($j=1;$j<=$n-$i;$j++){
            echo "&nbsp;";
        }
        //打印*號
        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 "&nbsp;";
                }
        }
    }
    echo "<br/>";
    }
    //倒轉 拋空
    for($i=$n;$i>=0;$i--){
        //打印空格
        for($j=0;$j<=$n-$i;$j++){
            echo "&nbsp;";
        }
        //打印*號
        for($k=1;$k<=2*$i-3;$k++){
            //怎么打空格和*號的問題
            if($k==2*$i-3 || $k==1){
                echo "*";
            }else{
                echo "&nbsp;";    
            }
        }
    echo "<br/>";
    }
?>

 

效果圖:

最后大功告成。順便說說 ,其實編程不難,難就難在怎么樣的思路,怎樣去解決問題的方法。所以大家在編程的過程中善於思考。盡管花了半天的時間去想,但是最后想出來了,問題也得到解決,所以平時要多動腦動手去實踐。我們的編程能力才能提高。只有實踐了,東西才能被理解,知識點也掌握了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM