C语言查漏之分支

  • else匹配问题

if,else语句中的else总是与最近的if相匹配。

而不管代码的缩进格式情况。

  • 级联的if-else if

if,else中的语句之后必须加上大括号形成语句块,大括号内的语句缩进一个tab的位置。

  • switch-case语句

switch(控制表达式){
case 常量:
    语句
    ······
case 常量:
    语句
    ······
case 常量:
    语句
default:
    语句
    ······
}

控制表达式只能是整数型的结果,

常量可以是常数,也可以是常数计算的表达式,

根据选定的case,执行其后面的语句,一直到break为止,

没有相匹配的case,则执行default后面的语句,没有default则什么也不做。

  • switch-case是如何实现的?

初步认知:当case项比较多时,通常会生成查询表来提高程序的运行效率,空间换时间。

在case项较少或比较离散时,不能生成查询表时,则是转换成if-else执行。

具体涉及到汇编的知识,可以参看https://blog.csdn.net/ts_54eagle/article/details/5278465这篇文章。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值