while 與do...while語(yǔ)句
PHP 循環(huán) - While 循環(huán)
循環(huán)執(zhí)行代碼塊指定的次數(shù),或者當(dāng)指定的條件為真時(shí)循環(huán)執(zhí)行代碼塊。
PHP 循環(huán)
在您編寫(xiě)代碼時(shí),您經(jīng)常需要讓相同的代碼塊一次又一次地重復(fù)運(yùn)行。我們可以在代碼中使用循環(huán)語(yǔ)句來(lái)完成這個(gè)任務(wù)。
在 PHP 中,提供了下列循環(huán)語(yǔ)句:
· while - 只要指定的條件成立,則循環(huán)執(zhí)行代碼塊
· do...while - 首先執(zhí)行一次代碼塊,然后在指定的條件成立時(shí)重復(fù)這個(gè)循環(huán)
· for - 循環(huán)執(zhí)行代碼塊指定的次數(shù)
· foreach - 根據(jù)數(shù)組中每個(gè)元素來(lái)循環(huán)代碼塊
while 循環(huán)
while 循環(huán)將重復(fù)執(zhí)行代碼塊,直到指定的條件不成立。
語(yǔ)法
while (條件)
{
要執(zhí)行的代碼;
}
實(shí)例
下面的實(shí)例首先設(shè)置變量 i 的值為 1 ($i=1;)。
然后,只要 i 小于或者等于 5,while 循環(huán)將繼續(xù)運(yùn)行。循環(huán)每運(yùn)行一次,i 就會(huì)遞增 1:
<html> <body> <?php $i=1; while($i<=5) { echo "The number is " . $i . "<br>"; $i++; } ?> </body> </html>
輸出:
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
do...while 語(yǔ)句
do...while 語(yǔ)句會(huì)至少執(zhí)行一次代碼,然后檢查條件,只要條件成立,就會(huì)重復(fù)進(jìn)行循環(huán)。
語(yǔ)法
do { 要執(zhí)行的代碼; } while (條件);
實(shí)例
下面的實(shí)例首先設(shè)置變量 i 的值為 1 ($i=1;)。
然后,開(kāi)始 do...while 循環(huán)。循環(huán)將變量 i 的值遞增 1,然后輸出。先檢查條件(i 小于或者等于 5),只要 i 小于或者等于 5,循環(huán)將繼續(xù)運(yùn)行:
<html> <body> <?php $i=1; do { $i++; echo "The number is " . $i . "<br>"; } while ($i<=5); ?> </body> </html>
輸出:
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
那我們現(xiàn)在要寫(xiě)一個(gè)0-99的隔行變色的表格。
定義初始值,輸出表格標(biāo)簽 和 表格中的列標(biāo)簽
<?php //定義循環(huán)的初始值 $i=0; echo '<table width="800" border="1">'; while($i<100){ //輸出列0-99的列了 echo '<td>'.$i.'</td>'; //一定要加喲,不然死循環(huán)了 $i++; } echo '</table>'; ?>
2.加上行產(chǎn)生的邏輯
<?php $i=0; echo '<table width="800" border="1">'; while($i<100){ //0 - 9 為一行 //10 -19 為一行 //因此,每一行都能夠被10求默,如為為10的時(shí)候,應(yīng)該顯示行開(kāi)始的標(biāo)簽 if($i%10 == 0){ //為了隔行變色,每20,40,60每行的顏色是PHP學(xué)院的,因此我們又可以再進(jìn)行一次取余運(yùn)算 if($i%20==0){ echo '<tr>'; }else{ echo '<tr bgcolor="pink">'; } } echo '<td>'.$i.'</td>'; $i++; //同理,每一行結(jié)束是不是應(yīng)該有一個(gè)</tr>結(jié)束標(biāo)簽?zāi)兀? if($i%10==0){ echo '</tr>'; } } echo '</table>'; ?>
注:不要寫(xiě)死循環(huán)(沒(méi)有退出條件的循環(huán))
whie(1){
echo 1111.'<br />';
}
do...while 語(yǔ)句
do-while 和 while 循環(huán)非常相似,區(qū)別在于表達(dá)式的值是在每次循環(huán)結(jié)束時(shí)檢查而不是開(kāi)始時(shí)。和正規(guī)的 while 循環(huán)主要的區(qū)別是 do-while 的循環(huán)語(yǔ)句保證會(huì)執(zhí)行一次(表達(dá)式的真值在每次循環(huán)結(jié)束后檢查),然而在正規(guī)的 while 循環(huán)中就不一定了(表達(dá)式真值在循環(huán)開(kāi)始時(shí)檢查,如果一開(kāi)始就為 FALSE 則整個(gè)循環(huán)立即終止)。
do-while 循環(huán)只有一種語(yǔ)法: <?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
以上循環(huán)將正好運(yùn)行一次,因?yàn)榻?jīng)過(guò)第一次循環(huán)后,當(dāng)檢查表達(dá)式的真值時(shí),其值為 FALSE($i 不大于 0)而導(dǎo)致循環(huán)終止。
Do While 循環(huán)語(yǔ)句與while有一定的區(qū)別,它們的區(qū)別就是do while不管條件是否為真都會(huì)先執(zhí)行一下,而while必須為真才會(huì)執(zhí)行一次.