PHP 教程:while 循环和 for 循环详解

· PHP笔记 小技巧 PHP 入门笔记 · 0 阅读 · 约 3 分钟

while 循环

while 循环先判断条件,条件为真才执行循环体,语法如下:

<?php
$i = 1;
while ($i <= 5) {
    echo "第 $i 次循环\n";
    $i++;
}
?>

注意循环体内必须有让条件趋于结束的语句(如 $i++),否则会死循环。

do-while 循环

do-while 先执行一次循环体,再判断条件,因此至少会执行一次:

<?php
$i = 10;
do {
    echo "这里会输出一次,即使条件不成立\n";
    $i++;
} while ($i <= 5);
?>

for 循环

for 循环把初始化、条件判断、步进写在同一行,适合已知循环次数的场景:

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "第 $i 次循环\n";
}
?>

三个表达式都可以省略,但分号不能省,省略条件时要靠 break 跳出:

<?php
for (;;) {
    if (mt_rand(1, 10) > 8) {
        break;
    }
    echo "随机执行\n";
}
?>

用循环遍历数组

<?php
$arr = ['php', 'java', 'python'];

// for 配合 count 遍历索引数组
for ($i = ; $i < count($arr); $i++) {
    echo $arr[$i] . "\n";
}
?>

如果是关联数组,推荐使用 foreach,这里先看一个 while 配合 each 风格的思路对比,实际开发中更常用:

<?php
$user = ['name' => 'Tom', 'age' => 18];
foreach ($user as $key => $value) {
    echo "$key: $value\n";
}
?>

break 和 continue

break 用于立即结束整个循环,continue 用于跳过本次循环进入下一轮:

<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 == ) {
        continue; // 跳过偶数
    }
    if ($i > 7) {
        break; // 超过 7 直接结束
    }
    echo $i . " ";
}
// 输出:1 3 5 7
?>

如何选择循环

  • 已知循环次数:优先用 for,逻辑集中、不易漏写步进
  • 循环次数不确定、依赖运行时条件:用 while
  • 无论条件是否成立都要先执行一次:用 do-while
  • 遍历数组:优先用 foreach

理解这几种循环的执行顺序是关键:先看条件判断在循环体之前还是之后,再看初始化和步进写在什么位置,选型就不会出错。