一、while 循环
while 循环的核心是“条件成立就执行”,通用结构为:while(条件) { 代码体 }。
$total = 0;
$num = 1;
while($num <= 100)
{
$total = $total + $num; // 累加(若取消注释)
echo $num++; // 先输出 $num 当前值,然后 $num 自增 1
echo "<br/>";
}
echo $total;
echo $num; // 循环结束,$num=101,PHP中仍可调用(同for循环特性)Code language: PHP (php)
$num++ 放在 echo 里,会导致打印完才自增。若循环体内不写自增(或注释掉),且条件一直为 true,就会形成死循环。
二、用 while 打印 1-9 并跳过 5
这里需要用到 continue(跳过本次循环后续代码,进入下一次判断)。完整代码如下:
$num = 1;
while($num <= 9)
{
if($num == 5) {
$num++; // 必须手动自增!否则卡在5死循环
continue; // 跳过5,不打印
}
echo $num . "<br/>";
$num++;
}
// 输出结果:1, 2, 3, 4, 6, 7, 8, 9Code language: PHP (php)
三、continue 换成 break 会怎样?
| 语句 | 作用 | 换成 break 后的结果 |
|---|---|---|
continue | 跳过本次,继续下一次循环 | 打印 1, 2, 3, 4,遇到 5 跳过,继续打印 6-9 |
break | 终止整个循环 | 打印 1, 2, 3, 4,遇到 5 直接结束循环,6-9 不再执行 |
陷阱提醒:如果在
if($num == 5)里用了break,循环直接结束;如果用了continue但没写$num++,$num永远是 5,条件永远成立,变成死循环。
四、++ 的问题:前置 vs 后置
echo ++$num; 和 echo $num++;,这是自增运算符的经典考点:
| 写法 | 名称 | 执行逻辑 | 示例(假设$num=3) |
|---|---|---|---|
$num++ | 后置自增 | 先使用当前值,再 +1 | echo $num++ 输出 3,之后 $num 变 4 |
++$num | 前置自增 | 先 +1,再使用新值 | echo ++$num 输出 4,此时 $num 已是 4 |
echo $num++; 就是“先打印,后加1”,所以打印 1-100 时输出正常,但最后 $num 会变成 101。
Previous: 循环语句for循环