跳轉到內容

PHP 程式設計/for 迴圈

來自華夏公益教科書,開放的書籍,開放的世界

for 迴圈

[編輯 | 編輯原始碼]

for 迴圈 是大多數現代程式語言中基本迴圈結構之一。與while 迴圈類似,for 迴圈會執行給定的程式碼塊,直到滿足某個條件為止。

PHP 中 for 迴圈的基本語法類似於 C 的語法

 for ([initialization]; [condition]; [step])

初始化 在迴圈第一次執行時發生。它用於初始化變數或執行其他要在迴圈體第一次執行之前執行的操作。

條件 在每次執行迴圈體之前進行評估;如果條件為真,則執行迴圈體,如果為假,則退出迴圈,程式執行從迴圈體後的第一行恢復。

步進 指定在每次執行迴圈體後要執行的操作。

考慮以下示例

PHP 程式碼:

for ($i = 0; $i < 5; $i++) {
  echo($i . "&lt;br /&gt;");
}

PHP 輸出:

0<br />1<br />2<br />3<br />4<br />

HTML 渲染:

 0
 1
 2
 3
 4


迴圈也可以根據個人喜好不使用 連線 進行格式化

for ($i = 0; $i < 5; $i++) {
  echo "$i&lt;br /&gt;";
}

在 for 迴圈中,它表明$i開始為0。當迴圈第一次執行時,它會打印出 的初始值$i,在本例中為0。對於每次迴圈,變數$i都會增加 1(由$i++ 遞增步進 表示)。當$i達到5時,它不再小於5,因此迴圈停止。

請注意,for 迴圈的初始化、條件和步進可以留空。在這種情況下,迴圈將無限期地繼續,隨後可以使用 break 語句 停止迴圈。

注意:與 C、C#C++Java 等其他語言不同,for 迴圈中使用的變數可能在 for 語句所在行之前被初始化,但它在迴圈結束後仍然存在。

使用 for 迴圈遍歷陣列

[編輯 | 編輯原始碼]

在 while 迴圈部分,sort() 示例使用 while 迴圈來打印出陣列的內容。通常,程式設計師使用 for 迴圈 來完成此類工作。

注意:強烈建議不要使用像下面這樣的索引。請使用鍵值 for 迴圈結構。

$menu = array("Toast and jam", "Bacon and eggs", "Homefries", "Skillet", "Milk and cereal");
// Note to self: get breakfast after writing this article
$count = count($menu);
for ($i = 0; $i < $count; $i++) {
  echo ($i + 1 . ". " . $menu[$i] . "&lt;br /&gt;");
}

同樣,如果您願意,也可以不使用連線進行格式化

for ($i = 0; $i < $count; $i++) {
  $j = $i + 1;
  echo "$j. {$menu[$i]}&lt;br /&gt;";
}
$count = count($menu);

我們在 for 迴圈之前定義計數器,以提高處理效率。這是因為每次執行 for 迴圈(while $i < $count)時,它都會評估等式兩側並執行任何函式。如果我們放$i < count($menu),它會在每次執行過程時評估count($menu),在處理大型陣列時,這是很昂貴的。

for ($i = 0; $i < $count; $i++)

這一行設定了迴圈。它將計數器$i,初始化為0,每次迴圈結束後增加 1,並檢查$i是否小於陣列的大小。

這也可以使用第二個初始化來完成。

for ($i = 0, $count = count($menu); $i < $count; $i++) {
  echo ($i + 1 . ". " . $menu[$i] . "&lt;br /&gt;");
}

echo 語句非常直白,也許除了開頭部分,我們 echo 了$i + 1。我們這樣做是因為,您可能還記得,陣列從0開始,到n - 1結束(其中n是它們的長度),因此要獲得從 1 開始的編號列表,我們必須在每次列印時將計數器增加 1。

當然,正如我之前提到的,這兩段程式碼都產生以下輸出

  1. 吐司和果醬 ✓
  2. 培根和雞蛋 ✓
  3. 土豆泥 ✓
  4. 煎鍋 ✓
  5. 牛奶和穀物 ✓

信不信由你,實際上有一種方法可以遍歷陣列,需要更少的輸入。(這難道不是目標嗎?)看看 foreach 迴圈,瞭解另一種完成我們這裡所做操作的方法。

更多資訊

[編輯 | 編輯原始碼]


華夏公益教科書