0Pricing
PHP Academy · 课时

for 与 while 循环

使用 for、while 和 do-while 循环重复执行代码。

for 与 while 循环 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。

为什么需要循环?

循环让您可以重复执行代码块,而不必反复复制粘贴。PHP 提供四种循环结构:

  • for —— 已知迭代次数
  • while —— 由条件控制
  • do-while —— 至少执行一次
  • foreach —— 遍历数组或对象(下一课介绍)

for 循环

for 循环包含三个部分:初始化、条件和递增:

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i . ' ';
}
// Output: 0 1 2 3 4

for 循环倒计数

您可以倒计数,也可以按任意步长递增或递减:

<?php
// Count down
for ($i = 10; $i >= 1; $i--) {
    echo $i . ' ';
}

// Step by 2
for ($i = 0; $i <= 10; $i += 2) {
    echo $i . ' ';  // 0 2 4 6 8 10
}

while 循环

while 循环会在条件为真时持续运行,并在每次迭代前检查条件:

<?php
$n = 1;

while ($n <= 5) {
    echo $n . ' ';
    $n++;
}
// Output: 1 2 3 4 5

do-while 循环

do-while 始终至少执行一次循环体,然后再检查条件:

<?php
$attempt = 0;

do {
    echo 'Trying... attempt ' . ($attempt + 1) . PHP_EOL;
    $attempt++;
} while ($attempt < 3 && !connectToServer());

function connectToServer(): bool { return false; }

无限循环与 break

无限循环会一直运行,除非使用 break 跳出:

<?php
$count = 0;

while (true) {
    $count++;
    if ($count >= 5) {
        break;  // exit loop
    }
}

echo $count; // 5

continue —— 跳过一次迭代

continue 会跳过当前迭代的剩余部分,直接进入下一次迭代:

<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 === 0) {
        continue;  // skip even numbers
    }
    echo $i . ' ';  // 1 3 5 7 9
}

嵌套循环

循环可以嵌套使用,适用于网格或表格等二维数据:

<?php
for ($row = 1; $row <= 3; $row++) {
    for ($col = 1; $col <= 3; $col++) {
        echo "($row,$col) ";
    }
    echo PHP_EOL;
}
// (1,1) (1,2) (1,3)
// (2,1) (2,2) (2,3)
// (3,1) (3,2) (3,3)

跳出嵌套循环

使用 break 2(或其他数字),即可一次跳出多层循环:

<?php
for ($i = 0; $i < 5; $i++) {
    for ($j = 0; $j < 5; $j++) {
        if ($i === 2 && $j === 2) {
            break 2;  // exits both loops
        }
        echo "$i,$j ";
    }
}

循环性能提示

避免在循环条件中执行开销较大的操作:

<?php
// Bad: count() called on every iteration
for ($i = 0; $i < count($arr); $i++) { /* ... */ }

// Good: calculate once
$len = count($arr);
for ($i = 0; $i < $len; $i++) { /* ... */ }

// Also fine: foreach avoids this entirely
foreach ($arr as $item) { /* ... */ }

替代的循环语法

与 if 一样,循环也支持冒号替代语法,以便嵌入 HTML:

<?php $items = ['apple', 'banana', 'cherry']; ?>
<ul>
<?php for ($i = 0; $i < count($items); $i++): ?>
    <li><?= htmlspecialchars($items[$i]) ?></li>
<?php endfor; ?>
</ul>

快速检查

哪种循环可以保证至少执行一次循环体?

回顾:for 和 while 循环

循环总结:

  • for —— 迭代次数已知时最适用
  • while —— 在每次迭代前检查条件
  • do-while —— 循环体至少运行一次
  • break 退出循环;break N 退出 N 层循环
  • continue 跳到下一次迭代

下一步:使用 foreach 遍历数组。

常见问题解答

「for 与 while 循环」课时是免费的吗?

是的 — 「for 与 while 循环」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。

「for 与 while 循环」这节课中我会学到什么?

使用 for、while 和 do-while 循环重复执行代码。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「for 与 while 循环」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. if、elseif 与 else
  2. Switch 与 Match 语句
  3. for 与 while 循环
  4. foreach 与循环控制
← 返回 PHP Academy