PHP- 控制流-循环语句-for

2023-04-26 13:55:32 浏览数 (1)

for循环语句的语法如下:

代码语言:javascript复制
for (expr1; expr2; expr3) {
    // 循环执行的代码
}

其中,expr1表示循环开始前执行的一段代码,通常用于初始化变量;expr2表示每次循环前都会进行的条件判断,如果条件为真,则继续执行循环体中的代码,否则跳出循环;expr3表示每次循环后要执行的代码,通常用于更新变量的值。

下面是一个简单的例子,该例子使用for循环语句输出1到10之间的所有整数:

代码语言:javascript复制
for ($i = 1; $i <= 10; $i  ) {
    echo $i . "<br>";
}

在上面的例子中,expr1表示初始化变量$i的值为1;expr2表示当$i的值小于或等于10时继续执行循环体中的代码;expr3表示每次循环结束后将$i的值加1。

当$i的值为1时,循环体中的代码将输出1。然后,$i的值加1,变为2。此时,条件判断为真,因此循环体中的代码将输出2。以此类推,直到$i的值为11,条件判断为假,循环结束。

除了在expr2中使用比较运算符进行条件判断外,还可以使用其他类型的条件语句来控制循环的执行流程。例如,下面的例子使用if语句在循环体中检查$i的值是否为5,如果是,则跳过本次循环:

代码语言:javascript复制
for ($i = 1; $i <= 10; $i  ) {
    if ($i == 5) {
        continue;
    }
    echo $i . "<br>";
}

在上面的例子中,当$i的值为5时,if语句将执行continue语句,跳过本次循环。因此,循环体中的代码将输出1到4和6到10之间的所有整数。

另外,可以在循环体中使用break语句来强制退出循环,例如:

代码语言:javascript复制
for ($i = 1; $i <= 10; $i  ) {
    if ($i == 5) {
        break;
    }
    echo $i . "<br>";
}

在上面的例子中,当$i的值为5时,if语句将执行break语句,强制退出循环。因此,循环体中的代码将输出1到4之间的所有整数,而5到10之间的整数将被忽略。

在for循环语句中,可以使用多个表达式来实现复杂的循环控制逻辑。例如,下面的例子使用两个变量$i和$j来实现一个嵌套的循环:

代码语言:javascript复制
for ($i = 1, $j = 10; $i <= 10; $i  , $j--) {
    echo "i = " . $i . ", j = " . $j . "<br>";
}

在上面的例子中,初始化表达式expr1包含两个变量的初始化:$i的值为1,$j的值为10。条件表达式expr2判断$i的值是否小于或等于10。更新表达式expr3包含两个变量的更新:$i的值加1,$j的值减1。因此,循环将从1到10迭代$i和从10到1迭代$j,输出如下结果:

代码语言:javascript复制
i = 1, j = 10
i = 2, j = 9
i = 3, j = 8
i = 4, j = 7
i = 5, j = 6
i = 6, j = 5
i = 7, j = 4
i = 8, j = 3
i = 9, j = 2
i = 10, j = 1

除了使用普通的变量作为循环控制器外,还可以使用数组来实现循环控制。例如,下面的例子使用数组来实现一个循环,每次循环从数组中获取一个元素:

代码语言:javascript复制
$colors = array("red", "green", "blue");

for ($i = 0; $i < count($colors); $i  ) {
    echo $colors[$i] . "<br>";
}

在上面的例子中,初始化表达式expr1将变量$i的值初始化为0。条件表达式expr2判断$i的值是否小于数组$colors的长度。更新表达式expr3将变量$i的值加1。因此,循环将从0到2迭代数组$colors的所有元素,输出如下结果:

代码语言:javascript复制
red
green
blue

最后,需要注意的是,在循环体中定义的变量的作用域仅限于循环体内部。如果需要在循环结束后继续使用循环控制变量,可以在循环体外部定义它们。例如:

代码语言:javascript复制
$sum = 0;

for ($i = 1; $i <= 10; $i  ) {
    $sum  = $i;
}

echo "sum = " . $sum . "<br>";

在上面的例子中,变量$sum的作用域超出了循环体。因此,在循环结束后,我们可以输出变量$sum的值,得到如下结果:

代码语言:javascript复制
sum = 55
php

0 人点赞