PHP - Do...While Loop: A Beginner's Guide
歡迎,有志於编程的同學們!今天,我們將進入PHP循環的精彩世界,特別是do...while循環。作為你們親切友善的鄰居計算機老師,我將帶領你們通過大量的範例和解釋來理解這個概念。所以,拿起你的虛擬筆記本,讓我們開始循環之旅吧!
What is a Do...While Loop?(什么是do...while循环?)
在我們投入範例之前,讓我們先了解一下do...while循環是什麼。想像你正在玩一個遊戲,你要不斷地擲骰子直到你得到一個六。你至少會擲一次骰子,對吧?這正是do...while循環的工作原理!
do...while循環會先至少執行一次代碼塊,然後檢查條件是否為真。如果條件為真,它會繼續重複執行代碼塊,直到條件變為假。
現在,讓我們看看語法:
do {
// 要執行的代碼
} while (條件);
Example 1: Basic Do...While Loop(範例1:基本的do...while循环)
讓我們從一個簡單的範例開始:
<?php
$i = 1;
do {
echo "The number is: $i <br>";
$i++;
} while ($i <= 5);
?>
這裡發生了什麼?
- 我們初始化一個變量
$i
,其值為1。 - 循環從
do
開始,我們輸出$i
的當前值。 - 我們使用
$i++
將$i
增加1。 - 在結束大括號後,我們有
while
條件。它檢查$i
是否小於或等於5。 - 如果條件為真,循環繼續;如果為假,則停止。
輸出:
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
Example 2: Do...While Loop with User Input(範例2:帶用戶輸入的do...while循环)
讓我們讓事情更具互動性!我們將創建一個簡單的猜數遊戲:
<?php
$secretNumber = 7;
do {
$guess = (int)readline("Guess the number (between 1 and 10): ");
if ($guess < $secretNumber) {
echo "Too low! Try again.\n";
} elseif ($guess > $secretNumber) {
echo "Too high! Try again.\n";
}
} while ($guess != $secretNumber);
echo "Congratulations! You guessed it right!";
?>
在這個範例中:
- 我們設定一個秘密數字(在這裡是7)。
- 循環請求用戶猜數字。
- 如果猜測的數字太小或太大,它會提供反饋。
- 循環會持續,直到猜中正確的數字。
這演示了如何使用do...while循環進行輸入驗證和創建簡單遊戲!
Example 3: File Reading with Do...While Loop(範例3:使用do...while循环讀文件)
讓我們探索一個更實際的範例 - 讀取文件的行:
<?php
$file = fopen("sample.txt", "r");
do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);
fclose($file);
?>
這裡發生了什麼:
- 我們以讀模式打開名為"sample.txt"的文件。
- 循環使用
fgets()
從文件中讀取一行。 - 如果行不是false(即不是文件結尾),我們輸出它。
- 循環繼續,直到我們達到文件末尾。
- 最後,我們關閉文件。
這個範例展示了do...while循環在文件操作中的用途!
Decrementing a "do...while" Loop(do...while循环的倒數)
現在,讓我們使用do...while循環來倒數:
<?php
$countdown = 5;
do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);
echo "Blast off! ?";
?>
在這個宇宙倒數中:
- 我們從5開始
$countdown
。 - 循環打印當前的倒數數字。
- 我們使用
$countdown--
將$countdown
減1。 - 當
$countdown
大於0時,循環繼續。 - 一旦我們達到零,我們就發射!
輸出:
T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Blast off! ?
Traverse a String in Reverse Order(反序遍历字符串)
讓我們創造性地使用do...while循環來反轉一個字符串:
<?php
$str = "Hello, World!";
$length = strlen($str) - 1;
do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>
這裡發生了什麼?
- 我們從字符串"Hello, World!"開始。
- 我們獲得字符串的最後索引(長度-1)。
- 循環從末尾開始打印每個字符。
- 我們在每次迭代中減少索引。
- 當我們打印完第一個字符時,循環結束。
輸出:
!dlroW ,olleH
Nested "do...while" Loops(嵌套的do...while循环)
最後,讓我們探索帶有樂趣模式的嵌套do...while循環:
<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>
讓我們分解這個:
- 外部循環控制行數(在這裡是5)。
- 內部循環在每行打印星號。
- 每行的星號數量等於行號。
- 我們使用
<br>
在每行後移動到下一行。
輸出:
*
* *
* * *
* * * *
* * * * *
Methods Table(方法表)
這是一個總結我們在範例中使用的方法的表格:
方法 | 描述 |
---|---|
echo | 輸出一個或多個字符串 |
readline | 從用戶輸入讀取一行 |
fopen | 打開文件或URL |
fgets | 從文件指針獲取一行 |
fclose | 關閉打開的文件指針 |
strlen | 返回字符串的長度 |
這就是PHP的do...while循環的來龍去脈。記住,熟能生巧,所以請持續編程並實驗這些循環。在你還沒有察覺之前,你將會在編程挑戰中繞圈子!快樂編程!??
Credits: Image by storyset