Switch

本文详细解析了switch语句的工作原理及其使用注意事项,包括switch表达式的格式、case常量的应用、default关键字的作用及位置灵活性,并通过实例展示了如何利用case穿透特性来提高代码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Switch

switch表达式

    switch(表达式)
    {
        case 常量 :
                语句;
                break;
        case 常量 :
                语句;
                break;

                ...
        default :
                语句;
                break;(default放在最后是,此break可省略)
    }

switch语句注意点:

  • Switch的条件表达式必须是返回整数的表达式, 也就是说()中只能放整数;或者写能够转换为整数的类型也可以, 例如char, 因为char类型可以转换为int类型, 所以写char也可以;

  • switch中default可以随便放,总会最后执行,若放在case前.那么break将不能省略,否则会出现穿透问题;

  • switch在结构完整的情况下比if效率高;

  • 巧用穿透,提高效率,例如:
        switch(monthValue)
        {
        case 12:
        case 1:
        case 2:
            printf("您输入的月份为:冬季");
            break;
        case 3:
        case 4:
        case 5:
            printf("您输入的月份为:春季");
            break;
        case 6:
        case 7:
        case 8:
            printf("您输入的月份为:夏季");
            break;
        case 9:
        case 10:
        case 11:
            printf("您输入的月份为:秋季");
            break;
        default:
            printf("您输入的月份有误:请输入1 ~ 12 之间的数值");
            break;

    }

switch中case的取值问题:

  • case后面只能放返回值是整数的表达式或者整数, 或者能够转换为整数的类型;

  • case的取值不能重复;

  • case后面不能放变量;(因为系统在编译的时候会对Switch后面所有的case进行优化,会根据case后面的常量值,生成一张取值表);

swith中default的位置问题:

  • Switch中的default可以随便放

  • 无论default写到什么地方,它都会最后执行(只有前面所有的case都不满足的情况才会执行);

  • 只要某一个case满足,那么后面所有的case和default都会失效;同理:只要default满足, 那么所有的case都会失效;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值