Menu
CoddyTech

Switch 语句

本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 32 课,共 71 课。

当你需要将一个变量与多个特定值进行比较时,switch 语句可以替代冗长的 if-elseif 链,让代码更简洁。

switch 语句只检查一次变量,然后将它与不同的 case 值进行匹配:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
    default:
        echo "Regular day";
}
?>

PHP 会将 $day 与每个 case 进行比较。找到匹配项后,它会运行对应代码块中的代码。

break 语句很重要。它会告诉 PHP 在执行匹配的 case 后退出 switch。否则,PHP 会继续运行下面的所有代码,甚至包括其他 case 中的代码。

注意,Saturday 和 Sunday 通过将多个 case 堆叠在一起,共享同一段代码。default case 的作用类似于 else。当没有其他 case 匹配时,它就会运行。

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

当你要将一个变量与多个确切值进行比较时,使用 switch。对于复杂条件或范围,继续使用 if-elseif 语句。

challenge icon

挑战

简单

从输入中读取一个表示交通信号灯颜色的字符串 command。

使用 switch 语句,根据颜色确定相应的操作:

  • 如果命令是 red,输出 Stop
  • 如果命令是 yellow,输出 Slow down
  • 如果命令是 green,输出 Go
  • 如果命令是 flashing red 或 flashing yellow,输出 Proceed with caution
  • 对于任何其他值,输出 Invalid signal

示例:

如果输入是 green,输出应为:

Go

如果输入是 flashing red,输出应为:

Proceed with caution

如果输入是 blue,输出应为:

Invalid signal

亲手试试

<?php
// 读取输入
$command = trim(fgets(STDIN));

// TODO: 在下方使用 switch 语句编写你的代码
// 根据交通信号灯的颜色确定该采取什么行动


?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: PHP 在线编译器