📜  SWITCH 语句的规则 (1)

📅  最后修改于: 2023-12-03 15:05:26.775000             🧑  作者: Mango

SWITCH 语句的规则

SWITCH 语句是一种常见的条件分支语句,它可以根据一个表达式的值来决定程序执行哪一段代码。SWITCH语句与IF-ELSE语句不同,它的分支关系是固定的,即每个分支只能与一个特定的值匹配。本文将介绍 SWITCH 语句的语法和规则。

SWITCH 语句的语法

SWITCH语句的一般形式如下:

switch(expression){
    case value1:
        // some statements
        break;
    case value2:
        // some statements
        break;
    case valueN:
        // some statements
        break;
    default:
        // some statements
}

其中,expression是需要被匹配的表达式,它可以是任何类型,例如整数、字符、字符串等。case部分表示每个分支需要匹配的值,是常量表达式。如果 expression 的值与其中的某个 value 的值相等,则会执行该分支下的代码。最后的 default 是可选的,用来处理没有匹配到任何分支时的情况。

SWITCH 语句的执行规则

当程序执行 SWITCH 语句时,会首先计算 expression 的值。接下来,程序会逐个检查 case 分支,如果有分支的值与 expression 值相等,则进入该分支执行相应的代码,直到遇到 break 关键字或语句块结束。如果没有与 expression 值相等的分支,则会执行 default 代码块,如果没有 default 块,程序会直接跳过 SWITCH 语句。如果在分支中没有出现 break 关键字,程序会继续执行下一个分支的代码,直到遇到 breakSWITCH 结束。

以下是一个 SWITCH 语句的示例程序,展示了 SWITCH 语句的执行规则。

#include <stdio.h>
 
int main () {

    int val = 3;
    switch (val)
    {
    case 1:
        printf("Value is 1\n");
        break;
    case 2:
        printf("Value is 2\n");
        break;
    case 3:
        printf("Value is 3\n");
    case 4:
        printf("Value is 4\n");
        break;
    default:
        printf("Unknown value\n");
    }
    return 0;
}

运行输出为:

Value is 3
Value is 4

可以看到,代码输出了 Value is 3Value is 4,这是因为在 case 3 中没有出现 break 关键字,导致程序继续执行了下一个分支的代码。

总结

SWITCH 语句是一种常见的条件分支语句,它可以根据一个表达式的值来决定程序执行哪一段代码。当程序执行 SWITCH 语句时,会逐个检查 case 分支,如果有分支的值与 expression 值相等,则进入该分支执行相应的代码,直到遇到 break 关键字或语句块结束。如果没有与 expression 值相等的分支,则会执行 default 代码块,如果没有 default 块,程序会直接跳过 SWITCH 语句。在使用 SWITCH 语句时,需要注意每个 case 分支的值必须是常量表达式,否者会导致编译错误。