循环语句for循环

一、for 循环语法拆解

通用格式为:for(初始化语句; 条件判断语句; 条件改变表达式)

它的执行顺序非常固定:

  1. 初始化:只在循环开始前执行 1次(如 $num = 1)。
  2. 条件判断:每次循环前执行。满足则进入循环体,不满足则结束(如 $num <= 100)。
  3. 循环体:执行大括号 {} 内的代码(如累加)。
  4. 条件改变:每次循环结束后执行(如 $num++),然后回到第2步继续判断。

二、代码逻辑逐行解析(计算1到100的和)

PHP 代码的核心逻辑如下:

<?php
    $total = 0;                  // 1. 初始化总和变量为0
    for($num = 1; $num <= 100; $num++)  // 2. 循环:从1到100
    {
        $total = $total + $num;  // 3. 累加:每次把当前的$num加到$total里
    }
    echo $total;                 // 4. 输出结果:5050
    echo "<br/>";                // 5. 换行(HTML换行符)
    echo $num;                   // 6. 输出循环结束后的$num值:101
?>Code language: HTML, XML (xml)
  • 注释掉的代码//for($num = 1 ; $num <=100;$num = $num + 1) 与下面的 $num++ 完全等价,$num++ 只是更简洁的自增写法。
  • 数学结果:1加到100的正确答案是 5050
  • 最终 $num 的值:当 $num 变成 101 时,判断 $num <= 100 失败,循环终止,所以最后 echo $num 会输出 101

三、变量作用域差异

//这里num还是可以调用的 这点和C c++ java c#等 有点不一样

这是一个非常关键的考点:

  • 在 C/C++/Java 中for(int i=0; ...) 里定义的变量 i局部变量,循环结束后就被销毁,外部无法访问(会报错)。
  • 在 PHP 中for($num=1; ...) 里的 $num 在循环结束后依然有效(属于当前作用域的全局变量),所以循环外 echo $num; 能正常输出 101。这是 PHP 语法上比较灵活(但也容易踩坑)的地方。

四、死循环与执行流程

“死循环”,在 for 中如果条件改变表达式缺失或条件永远为真,就会死循环:

// 死循环示例(条件永远满足)
for($i = 1; $i > 0; $i++) { 
    // 会一直执行,直到内存耗尽
}Code language: PHP (php)

正常循环的执行流程小结:

$num=1(初始化) → 判断1<=100(真) → 累加 → $num变2 → 判断2<=100(真) → … → $num变101 → 判断101<=100(假) → 结束循环 → 输出。

发表回复

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