2018年12月10日 星期一

DW_PHP_AJAX_CH2 PHP語言入門_(3)流程控制_迴圈

[重複執行的迴圈敘述]

 所謂迴圈(Loop)就是能讓某一段的程式敘述能夠重複執行許多次的流程控制敘述。 <<計次執行的for迴圈敘述>> 當我們知道迴圈必須執行的次數時, for敘述就是最好的迴圈敘述, 要使用For-Next敘述就必須使用一個控制變數來決定For-Next敘述要執行的次數, 其格式如下:
for  (計次變數=初值;終止條件;計次變量)
       {
          敘述區塊;
       }
由上列格式中可得知, for敘述可以幫我們建立一個迴圈, 我們只要指定變數起始值、變數的計次變量與終止條件就可以決定迴圈重複的次數。 例如:
for ($X=0 ; $X<10 ; $X++)
       {
          $Y=$Y+$X;
        }
在上例中, 最重要的一個地方就是變數X, 它在迴圈中是扮演一個計數器的角色, 而計數範圍從0到9, 所以在『{…}』中的敘述區塊將會被執行10次, 因此我們可對for敘述分析如下。

  1. 第一次執行迴圈時, 變數X被指定為起始值。
  2. 執行迴圈前, 變數X都會先進行是否超過終止值的檢驗, 若超過, 則結束迴圈, 否則就繼續執行迴圈內的敘述。 
  3. 執行過迴圈後, 變數X的值將會加上步進值(1)。

<< while迴圈敘述>>

 當知道迴圈必須執行的次數時, for敘述就是最好的迴圈敘述, 但是若不知道迴圈必須執行的次數的話就可以使用while迴圈敘述, 其格式如下:
while  (條件式)
{
       要重複執行的敘述區塊;
}
while迴圈敘述是由保留字while開始, 在其後是一個條件式, 而這個條件式則是一個布林值運算式, 如果這個條件式成立(布林值運算結果為True), 那麼在while迴圈敘述裡(敘述區塊)的程式碼就會執行至結尾, 然後再判斷條件式, 當這個條件式不再成立時, while迴圈敘述就會停止執行。
 現在我們來比較一下for與while敘述:計算1加至10。 for寫法:
for ($X=0 ; $X<10 ; $X++)
       {
          $Y=$Y+$X;
        }
while寫法:
$X=1;
While ($X <= 10) 
{
      $Y=$Y+$X;
       $X=$X+1;
}
看完這兩個敘述的比較, 是不是發現:同樣的功能, 但是while敘述似乎麻煩多了, 不過, 若不知道迴圈會執行幾次, 還是while敘述比較適合, 例如計算6561是3的幾次方。
<?php
$test=6561;
$ans=0;
while ($test>1)
{
    $test=$test/3;
    $ans=$ans+1; 
}
 echo ("6561是3的" . $ans . "次方");
?>

<< do-while迴圈敘述>>

 while敘述是在迴圈一開始的時候就先判斷條件式, 而do-while迴圈敘述則是先執行迴圈內的敘述區塊, 直到迴圈的結尾才進行條件式的判斷。 條件式成立(布林值運算結果為False)時, 那麼在do -while迴圈敘述裡(敘述區塊)的程式碼就會執行至結尾, 然後再判斷條件式, 當這個條件式不成立時, do –while迴圈敘述就會停止執行。
do
{  
要重複執行的敘述區塊;
 } while (條件式);
例如:
<?php
$test=6561;
$ans=0;
do
{
    $test=$test/3;
    $ans=$ans+1; 
} while ($test>1);
 echo ("6561是3的" . $ans . "次方");
?>

!!!TIP: 

while迴圈敘述與是在迴圈一開始的時候就先判斷條件式, 然後再決定迴圈是否繼續進行, 而do-while迴圈敘述則是先執行迴圈內的敘述區塊, 直到迴圈的結尾才進行條件式的判斷來決定迴圈是否繼續。 就條件式判斷的結果來論, while迴圈敘述與do-while迴圈敘述是在條件式『成立(True)』時才重複迴圈內的程式敘述。

沒有留言:

張貼留言