網頁

2017年3月31日 星期五

php for 、 while 、 foreach迴圈

for 迴圈:循環運行指定代碼。
for expr1 ; expr2 ; expr3){
代碼內容.......
}
expr1、expr2、expr3 數據中間有 ; 分號分開
expr1:循環初始值
expr2:循環的條件值,符合條件(true),則繼續循環運行大刮號內的代碼,不符合條件(false),則停止大括號內的代碼運行
expr3:每次運行程式遞增或遞減值
舉例說明:
for( $i=0 ; $i < 5 ; $i = $i+1){ echo $i; }
如上面這個例子,此例子會在螢幕上顯示出 01234,程式一開先設定起始數值 $i 為 0,而因為 0 小於 5,又因為 $i < 5 所以程式會先跑一次大括號內的指令,所以會在螢幕上印出一個數字 $i 即為 0,當執行完大刮號內的指令完後,程式繼續執行 expr3  就是把原本的 $i 加上 1 ($i = $i +1),當然你如果設 $i = $i +2  那麼得到的答案又會有所不同,下面做個列表:
第一次:$i= 0 因為 0 < 5  執行大括號內代碼印出 0 印完後 再執行 expr3 指令 $i = $i+1 ,$i 就變成 1
第二次:$i= 1 因為 1 < 5  執行大括號內代碼印出 1 印完後 再執行 expr3 指令 $i = $i+1 ,$i 就變成 2
第三次:$i= 2 因為 2 < 5  執行大括號內代碼印出 2 印完後 再執行 expr3 指令 $i = $i+1 ,$i 就變成 3
第四次:$i= 3 因為 3 < 5  執行大括號內代碼印出 3 印完後 再執行 expr3 指令 $i = $i+1 ,$i 就變成 4
第五次:$i= 4 因為 4 < 5  執行大括號內代碼印出 4 印完後 再執行 expr3 指令 $i = $i+1 ,$i 就變成 5
第六次:$i= 5 因為 5 並沒有小於 5 ,這時就是 false 了,然後程式就停止迴圈運行了
上面使用的 $i = $i +1 (每次遞增1)在迴圈內使用時,可直接以 $i++ 表示,遞減用 $i-- 表示
for 迴圈範例:

上面的範例中,有個九九乘法的巢狀範例,下面來張巢狀迴圈的示意圖:
for_and_while

上面迴圈示意圖下方的 while 迴圈,若使用巢狀迴圈法比較容易發生錯誤的原因,請先看變數 $i 與 $j
,原本藍色那個迴圈是必須執行 5 次後才跳出迴圈,再往後面代碼執行,但是當它執行括號內迴圈時遇到 } 大括號表示該迴圈已執行一次,但問題是內部卻是外圍迴圈的變數 $i 而不是 $j ,這樣就不是巢狀,兩個迴圈已經有交叉到了,這種寫法程式肯定就出錯了!

while() 迴圈:

當條件滿足迴圈內的條件時(true),執行大括號內的程式代碼,否則跳出迴圈
語法:
while(條件){ 代碼.......}
舉例說明:
$i = 0;
while($i < 5){
echo $i . '<br />';
$i++;//注意此值
}
如同 for 迴圈一樣,只是此迴圈的條件須要在 { } 內去做增減
第一次:$i= 0 因為 0 < 5  執行大括號內代碼印出 0 印完後 再執行 $i++(同 $i=$i+1) ,$i 就變成 1
第二次:$i= 1 因為 1 < 5  執行大括號內代碼印出 1 印完後 再執行 $i++(同 $i=$i+1) ,$i 就變成 2
第三次:$i= 2 因為 2 < 5  執行大括號內代碼印出 2 印完後 再執行 $i++(同 $i=$i+1) ,$i 就變成 3
第四次:$i= 3 因為 3 < 5  執行大括號內代碼印出 3 印完後 再執行 $i++(同 $i=$i+1) ,$i 就變成 4
第五次:$i= 4 因為 4 < 5  執行大括號內代碼印出 4 印完後 再執行 $i++(同 $i=$i+1) ,$i 就變成 5
第六次:$i= 5 因為 5 並沒有小於5(false) ,結束迴圈
實際範例:

foreach() 迴圈:取陣列值時所使用的迴圈,在陣列介紹文章內已有詳細說明,請點入查看。




沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。