Skip to content

控制流

程序不是从头到尾直线执行的,它需要根据不同情况做出判断和重复某些操作。这就是控制流的作用。

if 语句 - 做判断

💡 概念说明

当你需要让程序根据条件执行不同的代码时,就用 if 语句。它的逻辑是:"如果...就..."。

📝 基本语法

php
<?php
$age = 18;
if ($age >= 18) {
    echo "你已成年";
}
?>

运行结果:会显示 你已成年

提示

条件判断需要用括号 () 包起来,要执行的代码用花括号 {} 包起来。

📝 if-else 语句

php
<?php
$score = 55;
if ($score >= 60) {
    echo "及格了";
} else {
    echo "不及格";
}
?>

运行结果:会显示 不及格

📝 if-elseif-else 语句

php
<?php
$score = 85;
if ($score >= 90) {
    echo "优秀";
} elseif ($score >= 80) {
    echo "良好";
} elseif ($score >= 60) {
    echo "及格";
} else {
    echo "不及格";
}
?>

运行结果:会显示 良好

💪 练习题

练习1: 写一个程序,判断一个数字是正数、负数还是零。

查看答案
php
<?php
$num = -5;
if ($num > 0) {
    echo "正数";
} elseif ($num < 0) {
    echo "负数";
} else {
    echo "零";
}
?>

练习2: 判断用户年龄,输出不同的电影推荐(18岁以下推荐动画片,18-60岁推荐动作片,60岁以上推荐纪录片)。

查看答案
php
<?php
$age = 25;
if ($age < 18) {
    echo "推荐:动画片";
} elseif ($age <= 60) {
    echo "推荐:动作片";
} else {
    echo "推荐:纪录片";
}
?>

while 循环 - 重复执行

💡 概念说明

当你需要重复执行某段代码,并且不确定要重复多少次时,用 while 循环。它的逻辑是:"当...的时候,就一直..."。

📝 基本语法

php
<?php
$i = 1;
while ($i <= 5) {
    echo "第 {$i} 次\n";
    $i++; // 让 $i 增加 1
}
?>

运行结果:

第 1 次
第 2 次
第 3 次
第 4 次
第 5 次

注意

必须在循环内改变条件变量(如 $i++),否则会陷入死循环(无限执行)。

📝 计算累加

php
<?php
$sum = 0;
$i = 1;
while ($i <= 100) {
    $sum = $sum + $i; // 累加
    $i++;
}
echo "1到100的和是: {$sum}";
?>

运行结果:1到100的和是: 5050

💪 练习题

练习1: 用 while 循环输出 10 到 1 的倒数。

查看答案
php
<?php
$i = 10;
while ($i >= 1) {
    echo $i . "\n";
    $i--;
}
?>

练习2: 计算 1 到 50 中所有偶数的和。

查看答案
php
<?php
$sum = 0;
$i = 2;
while ($i <= 50) {
    $sum = $sum + $i;
    $i = $i + 2; // 每次增加2,只处理偶数
}
echo "偶数和: {$sum}";
?>

for 循环 - 固定次数重复

💡 概念说明

当你明确知道要重复多少次时,for 循环是最佳选择。它把"初始化、判断条件、更新变量"都写在一起,更简洁。

📝 基本语法

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

运行结果:

循环第 1 次
循环第 2 次
循环第 3 次
循环第 4 次
循环第 5 次

for 循环的三部分

for (初始值; 条件; 更新)

  • 初始值:$i = 1 设置起点
  • 条件:$i <= 5 什么时候停止
  • 更新:$i++ 每次循环后怎么变化

📝 打印乘法表

php
<?php
for ($i = 1; $i <= 9; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        echo "{$j} × {$i} = " . ($j * $i) . "\t";
    }
    echo "\n";
}
?>

运行结果:(九九乘法表)

1 × 1 = 1	
1 × 2 = 2	2 × 2 = 4	
1 × 3 = 3	2 × 3 = 6	3 × 3 = 9	
...

📝 遍历数组

php
<?php
$fruits = ["苹果", "香蕉", "橙子"];
for ($i = 0; $i < count($fruits); $i++) {
    echo $fruits[$i] . "\n";
}
?>

运行结果:

苹果
香蕉
橙子

提示

数组索引从 0 开始,所以条件是 $i < count($fruits) 而不是 <=

💪 练习题

练习1: 用 for 循环计算 1 到 10 的平方和(1² + 2² + 3² + ... + 10²)。

查看答案
php
<?php
$sum = 0;
for ($i = 1; $i <= 10; $i++) {
    $sum = $sum + ($i * $i);
}
echo "平方和: {$sum}";
?>

练习2: 打印一个 5 行的直角三角形(用 * 号)。

查看答案
php
<?php
for ($i = 1; $i <= 5; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        echo "*";
    }
    echo "\n";
}
?>

运行结果:

*
**
***
****
*****

📌 小结

  • if 语句:根据条件执行不同代码,格式是 if (条件) { 代码 }
  • while 循环:条件为真时重复执行,适合不确定次数的情况,别忘了更新条件变量
  • for 循环:知道重复次数时使用,for (初始; 条件; 更新) 把循环控制集中在一行