while循环和++的问题

一、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++后置自增先使用当前值,再 +1echo $num++ 输出 3,之后 $num 变 4
++$num前置自增先 +1,再使用新值echo ++$num 输出 4,此时 $num 已是 4

echo $num++; 就是“先打印,后加1”,所以打印 1-100 时输出正常,但最后 $num 会变成 101。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注