幫忙解釋兩個for迴圈

來源:互聯網
上載者:User
各位大大,這是一個用*輸出倒直角三角形的例子,這兩個for迴圈我不是很白,特別是裡面的那個,能解釋下麼,謝謝啦~
    for($i=1;$i<15;$i++){        for($j=$i;$j<15;$j++){            echo "*";        }       echo "
"; }


回複討論(解決方案)

為什麼還要有個變數$j去等於外層的變數$i,再次迴圈一遍呢?

你首先理解下單個發for迴圈含義!如果裡面不再做一次迴圈就不會出現3角了,而是豎著的14個*

$j = $i;//是讓內層迴圈的起始值等於外層的值//每次都少輸出一個*//外層第一次迴圈,內層輸出14個*//外層第二次迴圈,內層輸出13個*//以此類推只到迴圈結束

$j = $i;
關於這兩個變數,我這樣說看你能不能理解。
$i代表的是行數,即第一次迴圈代表第一行,依次類推,一共十五行。
$j代表的是列數,即每一行有多少列。

把代碼稍改動下,輸出一個矩形,協助你理解。改動的地兒:$j=1。

";    }?> 

理解for迴圈
其實可以輸出四種直角三角形

$i 可以看做是行, $j可以看做是列
首先看 $i =1;的時候$j =1; j<15,也就是裡面的for會迴圈14次,第一行就會出現14個*,然后里面的for結束開始 $i=2;的迴圈
然後看 $i =2;的時候$j=2;j<15,裡面的for會迴圈13次,出現13個*,後,開始執行$i=3;
…………
一次迴圈,最後得到第一行14個*,共14行,最後一行一個*,不知是否清楚.

多練練九九乘法表的輸出和菱形的輸出

這個我都能理解唉,i=1的時候 第二個for迴圈1<15 是不是迴圈14個星 i=2的時候 迴圈13 以此類推

$i控制執行的行數。
$j控制每一行輸出的*數。
很好理解啊。

因為從第一行開始,你的星號個數就要遞減,知道了規律,你再結合代碼就容易理解了。其實代碼還可以這樣寫。

for($i=1;$i<15;$i++){        for($j=0;$j<15-$i;$j++){             echo "*";        }       echo "
"; }
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.