C语言拾遗-C语言关键字-switch-case-default

本文主要介绍了C语言中switch开关语句,它由switch、case、default共同构成。程序先计算表达式值,与case常量表达式比较,不等则继续,都不等执行default语句。还对比了与if语句的不同,给出使用建议及相关注意事项,最后提供参考链接。

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

摘要:switch-case-default总是一起出现,共同构成switch开关语句。

switch

switch语句的一般形式为:

switch(表达式){ 
    case 常量表达式1: 语句1; break;//break不是必须的
    case 常量表达式2: 语句2; break;
    … 
    case 常量表达式n: 语句n; break;
    default:   语句n+1;//default也不是必须的
}

当执行switch语句时,程序会先计算表达式的值,再逐个和case 后的常量表达式比较。若不等则继续往下比较,若一直不等,则执行default后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有case后的语句。

与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句;而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case语句。所以建议在每一case语句之后增加break 语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

补充:

  • case后的常量表达式不能相同。
  • case后的语句可以有多个且不用花括号括起来。
  • case和default子句的先后顺序可以先后变动,default子句可以省略不用。
  • switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型。
  • switch可以任意个case语句(包括没有)。

参考链接

https://blog.youkuaiyun.com/Cheatscat/article/details/79508906
https://github.com/shellhub/blog/issues/41
https://blog.youkuaiyun.com/SqrsCbrOnly1/article/details/91363042
https://blog.youkuaiyun.com/ccMaa/article/details/51000422
https://blog.youkuaiyun.com/weixin_42955598/article/details/90717706

switch语句实现原理参考以下两个链接
https://www.cnblogs.com/mukekeheart/p/10558167.html
https://blog.youkuaiyun.com/hixiaogui/article/details/79785920

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值