跳到主要内容
版本:master

switch 语句

语法


注释:

  1. 分支列表的语法如下:

描述

switch 语句用于基于一个表达式的值,在多个分支中选择一个进行执行。每个分支由一个 case 标签和一个语句列表组成。 case 标签后跟一个常 量表达式,当 switch 表达式的值与某个 case 标签的值匹配时,执行对应的语句列表。 如果没有任何 case 标签匹配,且存在 default 标签, 则执行 default 标签后的语句列表。

switch 语句的执行流程如下:

  1. 计算 switch 表达式的值。
  2. 依次检查每个 case 标签的值,寻找与 switch 表达式值匹配的标签。
  3. 如果找到匹配的 case 标签,执行该标签后的语句列表,直到遇到 break 语句或 switch 语句结束。
  4. 如果没有找到匹配的 case 标签,且存在 default 标签,执行 default 标签后的语句列表。
  5. 如果没有匹配的 case 标签且没有 default 标签,switch 语句不执行任何操作。

如果在某个 case 标签下的语句中,没有使用 break 或其他跳转语句,程序将继续执行后续语句——即便这些语句属于下一个 case 标签或 default 标签。 这种行为称为 fall-through,在某些情况下可能是有意为之,但也可能导致意外的逻辑错误。因此,建议在每个 case 标签的语句列表末尾使用 break 语句, 除非明确希望实现 fall-through 行为。

示例

int value = 2;

switch (value)
{
case 1:
writeln("Value is 1");
break;
case 2:
writeln("Value is 2");
// 注意这里没有 break,程序会继续执行下一个 case
case 3:
writeln("Value is 3 or fell through from case 2");
break;
default:
writeln("Value is something else");
}