用for語句可以控制多個變數,從而實現多重迴圈的進階應用程式。
下面看一個用for語句輸出9*9乘法表的程式:
| 代碼如下 |
複製代碼 |
<?php for($i=1;$i<=9;$i++){ for($j=1;$j<=$i;$j++){ $sum=$i*$j; echo $sum ."t"; } echo "<br>"; } ?> |
除了前面提到的while迴圈語句,php還提供了for迴圈語句實現同樣的功能。而且for語句可以實現更為複雜更多功能的迴圈,任何while迴圈都可以用for迴圈來代替。
基本結構形式:
for(運算式1;運算式2;運算式3){
執行語句體
}
其執行過程如下:
1、先執行運算式1;
2、接著判斷運算式2的真假,若為假則跳出for迴圈執行下一個php語句,若為真則進入for迴圈執行語句體;
3、然後執行運算式3;
4、返回第2步迴圈運行;
5、直至迴圈結束跳出for語句。
流程圖:
執行個體:
| 代碼如下 |
複製代碼 |
<?php for($i=0;$i<=9;$i++){ $sum+=$i; echo $sum ."t"; } ?> |
do…while迴圈語句是while迴圈的變體,功能類似於while,只是在其執行迴圈後再檢查運算式是否為真,基本結構為:
do{;
語句體
}while(運算式)
do…while迴圈語句先執行一次語句體,然後判斷運算式的條件,如果值為真則返回再迴圈一次,為假則跳出迴圈。
執行個體:
| 代碼如下 |
複製代碼 |
<?php $i=1; $sum=0; do{ $sum +=$i; echo $sum ."n"; $i++; }while($i<=10) ?> |
while迴圈語句
while語句是php程式中用來實現迴圈的語句,其基本結構如下:
while(判斷語句){
執行語句體;
}
判斷語句一般用關係運算子或者邏輯運算子作為判斷條件。
當判斷語句為真實則執行語句體,然後再檢查運算式的值,如果仍然為真,則執行語句再次被執行。直到判斷語句為假時退出迴圈。
執行個體:
| 代碼如下 |
複製代碼 |
<?php $i=0; while($i<9){ $i++; echo $i ."<br>"; } ?> |
while和do…while的區別:
兩者的主要區別是do…while語句的第一次迴圈肯定要執行。
若兩者迴圈體執行語句相同,它們的運行結果一般也相同,但在運算式一開始為假時,兩種迴圈的運行結果就有所不同。
執行個體:
| 代碼如下 |
複製代碼 |
<?php /* while迴圈 */ $a=9; while($a>10){ echo "進入while迴圈語句體"; } /* do...while迴圈 */ do{ echo "進入do...while迴圈語句體"; }while($a>10) ?> |
php退出迴圈的方法有break和continu語句,它們的作用都是當判斷條件滿足時則跳出迴圈程式。
break語句用法:
當判斷條件的值為真時提前結束整個迴圈,接著執行迴圈以外的語句。
執行個體:
| 代碼如下 |
複製代碼 |
<?php /* 輸出面積在100以內的圓形面積 */ for($r=1;;$r++){ $A=3.14*$r*$r; if($A>50) break; /* 如果沒有break則形成死迴圈 */ echo $A ."<br>"; } ?>
|
continue語句用法:
continue語句的作用是結束本次迴圈而進入下一次迴圈,並不是退出整個迴圈程式。
執行個體:
| 代碼如下 |
複製代碼 |
<?php /* 輸出10以內的單數 */ for($i=1;$i<=10;$i++){ if($i%2==0) continue; echo $i ."t"; } ?> |
break和continue語句的區別:
從上面的例子我們可以看到,break和continue語句在退出迴圈的作用是有著本質區別的。
continue只是結束本次迴圈,接著再返回迴圈體繼續執行下次迴圈;
break則是立即終止整個迴圈,不再重複執行。