• 【C之switch】使用及技巧


    介绍

    switch是C语言中的一种控制流语句,它允许根据表达式的值来执行不同的代码块。
    switch语句通常用于替代一系列嵌套的if-else语句,使代码更加清晰和易于理解。

    语法

    switch语句的语法如下:

    switch (expression) {  
        case constant-expression:  
            statement(s);  
            break;  
        case constant-expression:  
            statement(s);  
            break;  
        /* 可以有任意数量的 case 语句 */  
        default:  
            statement(s);  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    switch语句中的expression必须是一个整型或枚举类型的常量表达式。每个case后面跟着一个要比较的值和一个冒号。
    如果expression的值与某个case后面的常量表达式的值相等,就执行该case后面的语句,直到遇到break语句为止。
    如果没有任何一个case的常量表达式的值与expression的值相等,就执行default后面的语句。default是“默认”的意思,可以省略。

    合并case技巧

    switch语句中,可以将多个case的语句合并到一起,例如:
    正确合并

    switch (grade) {  
        case 'A':  
        case 'B':  
        case 'C':  
            printf("Pass\n");  
            break;  
        case 'D':  
        case 'F':  
            printf("Fail\n");  
            break;  
        default:  
            printf("Invalid grade\n");  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    错误合并

    switch (grade) {  
        case 'A' || 'B' || 'C':    
            printf("Pass\n");  
            break;  
        case 'D' || 'F':  
            printf("Fail\n");  
            break;  
        default:  
            printf("Invalid grade\n");  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这个例子中,如果grade的值为’A’、‘B’或’C’,则输出"Pass";
    如果值为’D’或’F’,则输出"Fail";否则输出"Invalid grade"。
    通过将多个case的语句合并到一起,可以减少代码的重复,使代码更加简洁。
    需要注意的是,合并的case语句必须具有相同的执行路径,否则可能会出现逻辑错误。

  • 相关阅读:
    Golang 包了解以及程序的执行
    【UE4.x像素推流】
    HttpCannary根证书未安装,无法抓取SSL/TLS加密数据包问题解决方法(无需ROOT权限)
    fundamental notes in 3D math
    golang的垃圾回收算法之一基本介绍
    Vue使用总结-包括Vue2和Vue3
    Android原生插件开发-环境篇
    3、排序与分页&多表查询 -mysql
    7种方法教你如何解决msvcp140_1.dll丢失问题,一键修复dll丢失问题
    Spring MVC(下)
  • 原文地址:https://blog.csdn.net/MrHHHHHH/article/details/133755716