单片机中if与switch的差异有哪些?

鄂A开车拿口罩


if和switch都是C语言中常用的条件判断语句,两者所实现的效果是一样的,但是在应用、语法上不同,下面分别介绍。

if的用法

if和else搭配一起使用,可以实现多个关系表达式的判别,常用的if结构有三种。第一种用法只有一个if判断只用来判断一个分支;第二种和一个esle配合使用,对关系表达式的两层意思都做不同的语句表达式;第三种用法和多个else配合使用,用于多层判别,可以具有多个else if。三种用法的结构如下图所示。

if else应用比较灵活,可以应用在较多的关系判别中,但是需要注意的是,if else必须能遍历所有的可能值,否则容易导致bug,再有就是if括号中的关系表达式的结果必须是0或者1。

switch的用法

switch和case一起使用,结束处用break终止。

switch case其实是一个跳转表,只要case后面的内容和判别表达式的内容一致,就会顺序执行后面的语句,直到遇到break后跳出,如果都不满足条件,则执行default后面的语句。

switch case语句对跳转分支较多的情况比较合适,会直接跳转至满足判别条件的分支处,分支越多,效率越高。

以上就是这个问题的回答,感谢留言、评论、转发。更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。


玩转嵌入式


if 和 switch 都是C语言的判断语句

一般的场合使用 if 或者 switch 都可以达到相同的效果,但其实也是有很大的差异和优缺点的。

什么时候使用if?

if 顾名思义就是如果。如果条件成立就执行,如果只做简单的判断,使用 if 就可以

if 的使用比较灵活,判断语言比较多时,还可以使用else if


else 可以用也可以不用,根据实际需要决定是否使用

因为程序是从上到下动行的,条件1不成立,就需要判断条件2,条件3还不成立,还需要判断条件3,如果条件比较多,占用时间就相对较多。

什么时候用switch?

switch是选择性跳转语句,需要case和break配合一起使用;如果没有break;执行完当前 case 语句后,还会继续执行后面的 case 语句哦,直到break才会退出。

根据条件值,直接跳转到执行语句,所占用的运行时间较少;但case 后面的值必须是精确的固定值,不能像if 一样判断大小。所以switch的使用也有很多局限性。

但使用switch 时,判断的值必须是

int 或 enum 类型,因为case 后面的数值要精确匹配,浮点数是编译不了的。

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

  • 记得点赞和评论哦!非常感谢,如有错、漏,欢迎批评指定。

电子产品设计方案


编译成汇编,其实都一样的


分享到:


相關文章: