PHP

for迴圈指令

在編寫程式的時候經常會用到重複的作業,如果這些重覆的作業本身是有固定次數的特性,那麼在程式中使用for迴圈指令是最恰當不過了。在PHP中,for迴圈指令基本上和C語言的方法是一樣的。

以下是for迴圈指令的標準語法:

for (設定索引變數初始值; 索引變數的繼續執行條件; 對於索引變數的改變) {
  要被重複的指令區塊;
}

為了能夠指定重複指令區塊執行的次數,在for迴圈指令的第一列要先設定一個變數用來作為索引變數,而在2個分號所區隔的3個欄位中,一開始要先設定索引變數的初值,之後要說明如果想要持續執行迴圈內容的話,此索引變數要滿足的條件為何,最後一個欄位則是讓我們有機會可以去改變索引變數的內容,使得索引變數可以不斷地隨著執行的次數而改變,以確保迴圈執行次數的正確性。

以下是一個簡單的例子:

<?php
  for ($i=0; $i<5; $i++) {
    echo "Hello world!<br/>";
  }
?>

上述程式可以很容易地看出它的輸出結果就是5列"Hello world!<br/>"字串,而索引變數在這裡的目的也就是用來當作是計數器而已。再來看以下的例子:

<?php
  for ($i=1; $i<=6; $i++) {
    echo "<h$i>Hello world!</h$i>";
  }
?>

在上面的例子中,不只把$i這個變數當作是索引變數,而且還在迴圈指令中應用到它的值,使其值套用到HTML的標題標籤中,讓輸出的Hello world!字串可以由大到小呈現在瀏覽器上。執行之後的網頁原始碼如下所示:

<h1>Hello world!</h1>
<h2>Hello world!</h2>
<h3>Hello world!</h3>
<h4>Hello world!</h4>
<h5>Hello world!</h5>
<h6>Hello world!</h6>

輸出格式說明

請留意,在實際輸出時並無換列,以下排版只是為了方便同學們的閱讀和理解

再來看一個例子:

<?php
  echo "<table border=1 bgcolor=aliceblue>";
  echo "<tr><td>x</td><td align=center>x!</td></tr>";
  for ($x=1; $x<=10; $x++) {
    $factorial = 1;
    for ($j=1; $j<=$x; $j++) {
        $factorial *= $j;
    }
    echo "<tr><td>$x</td><td align=right>$factorial</td></tr>";
  }
  echo "</table>";
?>

這是一個計算並呈現階乘函數(factorial)值的例子,其輸出的結果如下:

在這個程式中除了使用迴圈之外 ,我們也利用迴圈指令的特性,使其產生HTML表格所需要的語法,這也是在PHP網頁設計中非常常見的技巧。其產生之原始碼如下所示:

<table border=1 bgcolor=aliceblue>
<tr><td>x</td><td align=center>x!</td></tr>
<tr><td>1</td><td align=right>1</td></tr>
<tr><td>2</td><td align=right>2</td></tr>
<tr><td>3</td><td align=right>6</td></tr>
<tr><td>4</td><td align=right>24</td></tr>
<tr><td>5</td><td align=right>120</td></tr>
<tr><td>6</td><td align=right>720</td></tr>
<tr><td>7</td><td align=right>5040</td></tr>
<tr><td>8</td><td align=right>40320</td></tr>
<tr><td>9</td><td align=right>362880</td></tr>
<tr><td>10</td><td align=right>3628800</td></tr>
</table>

輸出格式說明

請留意,在實際輸出時並無換列,以下排版只是為了方便同學們的閱讀和理解

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s