移至主內容

PHP的迴圈

PHP的迴圈

Written by Wanding on 20 August 2021

如果某一段程式要重複執行100次,難道我們就把此段程式碼打100次嗎? 這時候,心想如果有個方法能叫電腦自己自動執行100次,然後自己去喝茶休息,多美好。而這個方法就稱為"迴圈"。

 

1. for迴圈

for迴圈是一最簡單的迴圈使用,它提供以計數器的方式來控制迴圈。for迴圈的運作過程中,會使用某一變數作為存放迴圈執行的次數,透過設定的迴圈變數初始值、圈條件判斷、與變數數值的增減量,來控制迴圈要執行的次數,其中迴圈條件判斷及變數固定數值增加或減少,使用的格式和流程圖如下:

格式

<?php
    for(迴圈起始值;迴圈判斷條件;數值增減量){
        PHP程式碼;
    }
?>

 

流程圖

for-loop

 

計算從1累加到100的總和,使用for迴圈寫出程式

  1. 計算初始值(1)
  2. 結束值 (100)
  3. 數值遞增值 (1)
  4. 累加總和 (sum)
<?php
    $sum = 0;
    for($i=1;$i<=100;$i++){
        $sum+=$i;
    }
    echo "for迴圈<br>數字1累加到100結果為".$sum;
?>

執行結果:

for迴圈
數字1累加到100結果為5050

 

 

2. while迴圈

While迴圈是一種判斷條件成立才進行迴圈使用的方法,與for迴圈的差別在於其語法中並無初始值與增減量的設定,通常while迴圈會在其程式碼內才做會影響條件判斷的指令。使用方法如下:

格式

<?php
    while(迴圈判斷條件){
        PHP程式碼;
    }
?>

 

流程圖

while-loop

 

以while迴圈,從1累加到100的程式碼

<?php
    $sum=0;$i=1;
    while($i<=100){
        $sum+=$i;
        $i++;
    }
    echo "while迴圈<br>數字1累加到100結果為".$sum;
?>

執行結果:

while迴圈
數字1累加到100結果為5050

 

 

3. do while迴圈

do while迴圈與while迴圈相似,差別在於do while迴圈不管事件是否成立,都會先執行一次所指定的程式碼,之後再進行判斷決定是否要繼續執行迴圈,使用方法如下說明:

格式

<?php
    do{
      PHP程式碼;
    }(迴圈判斷條件);
?>

 

流程圖

do-while

 

程式範例

<?php
    $i=1;
    do{
        echo "do while迴圈執行第".$i."次<br>";
        $i++;
    }while($i>3);
?>

執行結果:

do while迴圈執行第1次
 

 

4. 巢狀迴圈

巢狀迴圈即是一個迴圈內有一個至多個迴圈在裡面,主要用於在多種狀況下且需要再做另外多種情況下的判斷及運算。比如,while迴圈內有一個for迴圈,這即是一種巢狀圈。

程式範例

<?php
    $i=1;
    while($i<=2)
    {
        for($j=1;$j<=3;$j++)
        {
           echo "while迴圈第".$i."次,for迴圈第".$j."次<br>";
        }
        $i++;
    }
?>

執行結果:

while迴圈第1次,for迴圈第1次
while迴圈第1次,for迴圈第2次
while迴圈第1次,for迴圈第3次
while迴圈第2次,for迴圈第1次
while迴圈第2次,for迴圈第2次
while迴圈第2次,for迴圈第3次

 

 

5. break 與 continue

break即是在迴圈的執行過程中,強制中斷回圈內執行的程式碼,此方法通常會配合條件判斷來使用。

程式範例

<?php
    $i=1;
    while($i<=99)
    {
       echo "while迴圈執行第".$i."次<br>";
       if($i == 3)
       {
           echo "while迴圈break跳出";
           break;        
       }
       $i++;
     }
?>

執行結果

while迴圈執行第1次
while迴圈執行第2次
while迴圈執行第3次
while迴圈break跳出

 

continue是可以讓迴圈略過此階段過程,直接執行下一階段迴圈。

程式範例

<?php
    for($i=1;$i<=10;$i++)
    {
        if($i<7)
        {
            continue;
        }       
        echo "while迴圈執行第".$i."次<br>";       
     }
?>

 

執行結果

while迴圈執行第7次
while迴圈執行第8次
while迴圈執行第9次
while迴圈執行第10次


回PHP目錄