while 與do...while語句
PHP 循環(huán) -?While 循環(huán)
循環(huán)執(zhí)行代碼塊指定的次數(shù),或者當(dāng)指定的條件為真時(shí)循環(huán)執(zhí)行代碼塊。
PHP 循環(huán)
在您編寫代碼時(shí),您經(jīng)常需要讓相同的代碼塊一次又一次地重復(fù)運(yùn)行。我們可以在代碼中使用循環(huán)語句來完成這個(gè)任務(wù)。
在 PHP 中,提供了下列循環(huán)語句:
·???????? while?- 只要指定的條件成立,則循環(huán)執(zhí)行代碼塊
·???????? do...while?- 首先執(zhí)行一次代碼塊,然后在指定的條件成立時(shí)重復(fù)這個(gè)循環(huán)
·???????? for?- 循環(huán)執(zhí)行代碼塊指定的次數(shù)
·???????? foreach?- 根據(jù)數(shù)組中每個(gè)元素來循環(huán)代碼塊
while 循環(huán)
while 循環(huán)將重復(fù)執(zhí)行代碼塊,直到指定的條件不成立。
語法
while (條件)
{
要執(zhí)行的代碼;
}
實(shí)例
下面的實(shí)例首先設(shè)置變量?i?的值為 1 ($i=1;)。
然后,只要?i?小于或者等于 5,while 循環(huán)將繼續(xù)運(yùn)行。循環(huán)每運(yùn)行一次,i?就會遞增 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 語句
do...while 語句會至少執(zhí)行一次代碼,然后檢查條件,只要條件成立,就會重復(fù)進(jìn)行循環(huán)。
語法
do { 要執(zhí)行的代碼; } while (條件);
實(shí)例
下面的實(shí)例首先設(shè)置變量?i?的值為 1 ($i=1;)。
然后,開始 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)在要寫一個(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)該顯示行開始的標(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>'; ?>
注:不要寫死循環(huán)(沒有退出條件的循環(huán))
whie(1){
??? echo 1111.'<br />';
}
?
do...while 語句
do-while?和?while?循環(huán)非常相似,區(qū)別在于表達(dá)式的值是在每次循環(huán)結(jié)束時(shí)檢查而不是開始時(shí)。和正規(guī)的?while?循環(huán)主要的區(qū)別是?do-while?的循環(huán)語句保證會執(zhí)行一次(表達(dá)式的真值在每次循環(huán)結(jié)束后檢查),然而在正規(guī)的?while?循環(huán)中就不一定了(表達(dá)式真值在循環(huán)開始時(shí)檢查,如果一開始就為?FALSE?則整個(gè)循環(huán)立即終止)。
do-while?循環(huán)只有一種語法:?<?php
$i?=?0;
do?{
???echo?$i;
}?while?($i?>?0);
?>
以上循環(huán)將正好運(yùn)行一次,因?yàn)榻?jīng)過第一次循環(huán)后,當(dāng)檢查表達(dá)式的真值時(shí),其值為?FALSE($i 不大于 0)而導(dǎo)致循環(huán)終止。
Do While 循環(huán)語句與while有一定的區(qū)別,它們的區(qū)別就是do while不管條件是否為真都會先執(zhí)行一下,而while必須為真才會執(zhí)行一次.?