for 循环

for 循环是现代编程语言中最基本的循环结构之一。与 while 循环一样,for 循环会执行指定的代码块,直到满足某个条件。

语法

for 循环的基本语法与 C 语言相似:

for ([初始化]; [条件]; [步骤])
  • 初始化:循环第一次运行时执行,用于初始化变量或执行其他在第一次执行循环体前需要做的操作。
  • 条件:在每次执行循环体之前都会被评估。如果条件为真,循环体将被执行;如果条件为假,循环会终止,程序继续执行循环体后面的代码。
  • 步骤:每次执行循环体后需要执行的操作,通常是更新计数器变量的值。

考虑以下示例:

<?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 语句来终止循环。

使用 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 循环前定义 $count 是为了提高效率。这样每次执行 for 循环时(当 $i < $count 时),不必重复计算 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 语句的含义很明确,唯一可能不太清楚的是开头的 $i + 1。因为数组的索引是从 0 开始的,数组的最后一个元素是 n - 1(其中 n 是数组的长度),所以为了从 1 开始显示列表,我们每次打印时都需要将计数器加 1。

当然,正如我之前提到的,以下两段代码的输出结果是相同的:

Toast and jam ✓
Bacon and eggs ✓
Homefries ✓
Skillet ✓
Milk and cereal ✓

相信不信,这里有一种遍历数组的方法,甚至不需要这么多的打字。可以查看 foreach 循环,了解另一种实现相同功能的方式。

更多信息

最后修改: 2025年01月9日 星期四 22:46