C语言教程:switch语句从多个条件执行代码

2023年 7月 14日 108.2k 0

C语言中的switch语句用于从多个条件执行代码。 就像if else-if语句一样。

C语言中switch语句的语法如下:

switch(expression){    
case value1:    
 //code to be executed;    
 break;  //optional  
case value2:    
 //code to be executed;    
 break;  //optional  
......    

default:     
 code to be executed if all cases are not matched;    
}

C

C语言中switch语句的规则如下 -

  • switch表达式必须是整数或字符类型。
  • case值必须是整数或字符常量。
  • case值只能在switch语句中使用。
  • switch case中的break语句不是必须的。这是一个可选项。 如果在switch case中没有使用break语句,则匹配case值后将执行所有后的语句。它被称为通过C语言switch语句的状态。
  • 我们试着通过例子来理解它。假设有以下变量及赋值。

    int x,y,z;  
    char a,b;  
    float f;
    

    C

    有效的Switch 无效的Switch 有效的Case 无效的Case
    switch(x) switch(f) case 3; case 2.5;
    switch(x>y) switch(x+2.5) case ‘a’; case x;
    switch(a+b-2) case 1+2; case x+2;
    switch(func(x,y)) case ‘x’>’y’; case 1,2,3;

    C语言中的switch语句的流程图 -

    我们来看一个简单的C语言switch语句示例。创建一个源文件:switch-statment.c,其代码如下 -

    #include  
    #include  
    void main() {
        int number = 0;
    
        printf("Enter a number:");
        scanf("%d", &number);
    
        switch (number) {
        case 10:
            printf("number is equals to 10\n");
            break;
        case 50:
            printf("number is equal to 50\n");
            break;
        case 100:
            printf("number is equal to 100\n");
            break;
        default:
            printf("number is not equal to 10, 50 or 100\n");
        }
    }
    

    C

    执行上面示例代码,得到以下结果 -

    Enter a number:88
    number is not equal to 10, 50 or 100
    

    Shell

    执行第二次,结果如下 -

    Enter a number:50
    number is equal to 50
    请按任意键继续. . .
    

    Shell

    switch语句直通到尾

    在C语言中,switch语句是通过的,这意味着如果在switch case中不使用break语句,则匹配某个case之后的所有的case都将被执行。

    我们来试试通过下面的例子来了解switch语句的状态。创建一个源文件:switch-fall-through.c,其代码如下所示 -

    #include  
    #include  
    void main() {
        int number = 0;
    
        printf("enter a number:");
        scanf("%d", &number);
    
        switch (number) {
        case 10:
            printf("number is equals to 10\n");
        case 50:
            printf("number is equal to 50\n");
        case 100:
            printf("number is equal to 100\n");
        default:
            printf("number is not equal to 10, 50 or 100\n");
        }
    }
    

    C

    执行上面示例代码,得到以下结果 -

    enter a number:10
    number is equals to 10
    number is equal to 50
    number is equal to 100
    number is not equal to 10, 50 or 100
    请按任意键继续. . .
    

    Shell

    从上面的输出结果中,可以清楚地看到,当匹配 number = 10 之后,由于没有break语句,其它后面的语句也打印执行了。

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论