PHP - Do...While 循环:初学者指南
欢迎,有抱负的程序员们!今天,我们将深入 PHP 循环的精彩世界,特别是 do...while 循环。作为你友好的邻里计算机老师,我将在大量的示例和解释中引导你了解这个概念。所以,拿起你的虚拟记事本,让我们一起开始循环吧!
什么是 Do...While 循环?
在我们进入示例之前,先来了解一下 do...while 循环是什么。想象你正在玩一个游戏,你要不断掷骰子直到得到一个六。你会至少掷一次骰子,对吧?这正是 do...while 循环的工作方式!
do...while 循环至少执行一次代码块,然后检查条件是否为真。如果条件为真,它将继续执行代码块,直到条件变为假。
现在,让我们来看看语法:
do {
// 要执行的代码
} while (条件);
示例 1:基本的 Do...While 循环
让我们从一个简单的示例开始:
<?php
$i = 1;
do {
echo "数字是: $i <br>";
$i++;
} while ($i <= 5);
?>
这里发生了什么?
- 我们用值 1 初始化变量
$i
。 - 循环以
do
开始,我们输出$i
的当前值。 - 我们使用
$i++
将$i
增加 1。 - 在关闭的花括号后,我们有
while
条件。它检查$i
是否小于或等于 5。 - 如果条件为真,循环继续;如果为假,停止。
输出:
数字是: 1
数字是: 2
数字是: 3
数字是: 4
数字是: 5
示例 2:带有用户输入的 Do...While 循环
让我们让事情变得更加互动!我们将创建一个简单的猜数字游戏:
<?php
$secretNumber = 7;
do {
$guess = (int)readline("猜一个数字(1到10之间): ");
if ($guess < $secretNumber) {
echo "太低了!再试一次。\n";
} elseif ($guess > $secretNumber) {
echo "太高了!再试一次。\n";
}
} while ($guess != $secretNumber);
echo "恭喜!你猜对了!";
?>
在这个示例中:
- 我们设定一个秘密数字(在这个例子中是 7)。
- 循环询问用户猜测数字。
- 如果猜测太低或太高,它将提供反馈。
- 循环继续,直到猜中正确的数字。
这展示了 do...while 循环如何用于输入验证和创建简单的游戏!
示例 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 循环在文件操作中的用途!
递减的 "do...while" 循环
现在,让我们使用 do...while 循环倒计时:
<?php
$countdown = 5;
do {
echo "倒计时 $countdown...<br>";
$countdown--;
} while ($countdown > 0);
echo "发射!?";
?>
在这个宇宙倒计时中:
- 我们从
$countdown
设置为 5 开始。 - 循环打印当前的倒计时数字。
- 我们使用
$countdown--
递减$countdown
。 - 只要
$countdown
大于 0,循环就继续。 - 一旦我们到达零,我们就发射!
输出:
倒计时 5...
倒计时 4...
倒计时 3...
倒计时 2...
倒计时 1...
发射!?
逆向遍历字符串
让我们用创意逆向遍历一个字符串,使用 do...while 循环:
<?php
$str = "Hello, World!";
$length = strlen($str) - 1;
do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>
这里发生了什么?
- 我们从一个字符串 "Hello, World!" 开始。
- 我们获取字符串的最后一个索引(长度 - 1)。
- 循环从末尾开始打印每个字符。
- 我们在每次迭代中递减索引。
- 循环继续,直到我们打印出第一个字符。
输出:
!dlroW ,olleH
嵌套的 "do...while" 循环
最后,让我们用一个有趣的模式探索嵌套的 do...while 循环:
<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>
让我们分解一下:
- 外部循环控制行数(在这个例子中是 5)。
- 内部循环在每行打印星号。
- 每行的星号数等于行号。
- 我们使用
<br>
在每行后换行。
输出:
*
* *
* * *
* * * *
* * * * *
方法表
下面是一个表格,总结了我们示例中使用的所有方法:
方法 | 描述 |
---|---|
echo | 输出一个或多个字符串 |
readline | 从用户输入中读取一行 |
fopen | 打开一个文件或 URL |
fgets | 从文件指针中获取一行 |
fclose | 关闭一个打开的文件指针 |
strlen | 返回字符串的长度 |
就这样,大家!我们已经循环了解了 PHP 的 do...while 循环。记住,熟能生巧,所以继续编码并尝试这些循环。在你意识到之前,你将在编码挑战中绕圈子!快乐编码!??
Credits: Image by storyset