PHP - While Loop: A Beginner's Guide

您好,有志於成為程序員的各位!今天,我們將深入PHP編程中最基礎的概念之一:While Loop。別擔心如果你之前從未寫過一行代碼——我會一步步引導你,就像這些年來我在課堂上對數百名學生做的一樣。

PHP - While Loop

What is a While Loop?

在我們投入範例之前,讓我們先了解while loop是什麼。想像你在刷牙。你刷牙刷一次就停了嗎?不會,你會繼續刷直到你的牙齒變乾淨。這正是編程中while loop的工作方式!

While loop會在指定的條件為真的情況下反覆執行一段代碼。這就像告訴計算機:"嘿,當這個條件為真的時候,請繼續執行這個任務。"

現在,讓我們看一些範例來讓這個概念更明確。

Example 1: Counting to 5

<?php
$count = 1;
while ($count <= 5) {
echo $count . " ";
$count++;
}
?>

如果你運行這段代碼,你會看到:1 2 3 4 5

讓我們分解這段代碼:

  1. 我們從$count = 1開始。
  2. Loop會檢查$count <= 5(count小於或等於5嗎?)。
  3. 如果為真,它會打印出當前的$count值。
  4. 然後它會將$count增加1($count++)。
  5. 這個過程會重複,直到$count變成6,此時條件為假,loop結束。

Example 2: Decreasing Counter

讓我們顛倒之前的範例:

<?php
$count = 5;
while ($count > 0) {
echo $count . " ";
$count--;
}
echo "Blast off!";
?>

輸出:5 4 3 2 1 Blast off!

這次,我們在計數下來!就像火箭發射倒數計時。我們從5開始,並在計數大於0的情況下繼續。每次loop我們都會將計數減少1($count--)。

Example 3: User Input

讓我們來讓事情變得互動:

<?php
$correct_password = "secret123";
$attempt = "";

while ($attempt != $correct_password) {
$attempt = readline("Enter the password: ");
if ($attempt != $correct_password) {
echo "Incorrect, try again!\n";
}
}

echo "Access granted!";
?>

這個腚本模擬了一個密碼輸入系統。它會在不斷要求輸入正確密碼的情況下繼續詢問。這就像被卡在房子外面直到你記起正確的鑰匙!

Iterating an Array with "while"

數組在PHP中就像列表。讓我們使用while loop來遍歷一個數組:

<?php
$fruits = array("Apple", "Banana", "Cherry", "Date", "Elderberry");
$i = 0;

while ($i < count($fruits)) {
echo $fruits[$i] . "\n";
$i++;
}
?>

這會在每一行打印出每種水果。count($fruits)給我們數組中的項目數量,所以我們在計數器小於這個數字的情況下繼續loop。

Nested "while" Loops

有時候,我們需要在loop中嵌套loop。這就像輪子中有輪子:

<?php
$i = 1;
while ($i <= 3) {
$j = 1;
while ($j <= 3) {
echo $i . "-" . $j . " ";
$j++;
}
echo "\n";
$i++;
}
?>

輸出:

1-1 1-2 1-3
2-1 2-2 2-3
3-1 3-2 3-3

這會創建一個3x3的網格。外部loop控制行,內部loop控制列。

Traversing the Characters in a String

在PHP中,字符串就是字符序列。我們可以使用while loop來遍歷每個字符:

<?php
$word = "Hello";
$i = 0;
while ($i < strlen($word)) {
echo $word[$i] . "\n";
$i++;
}
?>

這會在每一行打印出"Hello"的每個字母。strlen($word)給我們字符串的長度。

Using the "endwhile" Statement

PHP提供了使用endwhile語句的while loop的替代語法:

<?php
$count = 1;
while ($count <= 5):
echo $count . " ";
$count++;
endwhile;
?>

這與我們的第一個範例做同樣的事情,但有些人發現這種語法在長loop中更清晰。

Common While Loop Methods

這裡是一個常用while loop方法的表格:

方法 描述 範例
break 立即退出loop if ($count == 3) break;
continue 跳過當前迭代的剩餘部分 if ($count == 3) continue;
$variable++ 變量加1 $count++;
$variable-- 變量減1 $count--;

記住,while loop很強大,但請謹慎使用!如果你的條件從不變為false,你會創建一個無窮loop,你的程序將永遠不會停止運行。這就像告訴某人繼續走直到他們達到地球的盡頭——他們會永遠走下去!

總結來說,while loop是PHP編程中的一個基本工具。它們讓我們能夠重複動作,處理數據列表,並在我們的代碼中創建複雜的行為。通過這些範例練習,嘗試你自己的想法,不久你將會像專業人士一樣使用loop!

Credits: Image by storyset