« 28. 如何撰寫 while 敘述? | (回到Blog入口) | 30. 如何撰寫 for 敘述? »

29. 如何撰寫 do...while 敘述?

jollen 發表於 October 27, 2006 2:54 PM

do...while 敘述也是迴圈敘述,但是 do...while 與 while 不同的地方在於,do...while 一定會先執行 do 裡的敘述 1 次,但是 while 則不一定。因為 while 是先去判斷 EXPRESSION 是否成立,而 do...while 則是先執行 1 次後才去判斷 EXPRESSION。

do...while 的語法:

do { statement1; statement2; // 先執行這裡的 statements 一次,然後再判斷 // EXPRESSION, ... // 當 EXPRESSION 當 true 時,則繼續執行這裡的敘述。 } while (expr);

do...while 迴圈的最大特色是,do 裡面的程式碼會至少被執行 1 次。另外,do...while 述敘並沒有冒號的寫法。

請看底下的範例:

<?php $a = 1; $sum = 0; do { $sum = $sum+$a; $a = $a+1; } while ($a <= 10);; ?>

與 while 的範例結果相同,最後 $sum 的值一樣是 55。

那麼 while 與 do...while 不同的地方什麼場合比較明顯呢?請看底下的範例:

<?php while ($a == true) { echo "Hello!"; $a = false; }
do { echo "Hello!"; $a = false; } while ($a == true); ?>

這是 while 與 do...while 的程式片斷,這 2 段程式最大的不同在於:如果 $a 的初始值為 true,則 2 個程式片斷的輸出結果相同。但是如果 $a 的初始值為 false,則 while 不會有任何輸出,但是 do...while 則一定會被執行 1 次,因此會輸出 1 個 Hello! 的字串。

程式:當 $a = false 輸出結果

$a = false; while ($a == true) { echo "Hello!"; $a = false; } (沒有輸出) $a = false; do { echo "Hello!"; $a = false; } while ($a == true); // Hello!

程式:當 $a = true 輸出結果

$a = true; while ($a == true) { echo "Hello!"; $a = false; } // Hello! $a = true; do { echo "Hello!"; $a = false; } while ($a == true); // Hello!

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org