发新帖我要提问
12
返回列表
打印
[PIC®/AVR®/dsPIC®产品]

在switch与if else之间该如何选择

[复制链接]
楼主: gaoyang9992006
手机看帖
扫描二维码
随时随地手机跟帖
21
blust5| | 2023-3-15 16:37 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 blust5 于 2023-3-15 16:41 编辑

Switch判断的是同一个/组条件的不同状态分支,而if else可以判断不同条件的不同状态分支
比如:
if(a==1)
{
    //......
}
else if(b==1)
{
    //......
}
else if(c==1)
{
    //......
}
else if(d==1)
{
    //......
}
//......


使用特权

评论回复
22
gaoyang9992006|  楼主 | 2023-3-15 17:10 | 只看该作者
blust5 发表于 2023-3-15 16:37
Switch判断的是同一个/组条件的不同状态分支,而if else可以判断不同条件的不同状态分支
比如:

是的,更加灵活。不过要分情况而定,如果判断条件只有一个整数参数,那确实是可以用switch的。

使用特权

评论回复
23
suncat0504| | 2023-3-18 11:33 | 只看该作者
从效率讲,switch更好一些。但从代码维护上讲,我觉得if...else更好一些。比如后期如果出现条件更改,以及条件追加、修改上,更利于代码的后期维护。我以前长期做纯软工作,编写代码时也不喜欢用switch,因为式样经常变更,导致执行的条件发生变化,使用switch的话,出现复合条件的场合,修改起来,就比较麻烦,代码不利于解读。所以更愿意使用if...else来处理。对于现在的硬件资源,大多数场合是不需要考虑那么一丢丢执行效率上的差异的。
综合式样书的书写上、代码的可读性上,还是觉得用if...else更好一些。相比于计算机,嵌入式上在需要重点考虑执行效率的场合,也许才考虑使用switch吧。

使用特权

评论回复
24
blust5| | 2023-3-20 15:23 | 只看该作者
suncat0504 发表于 2023-3-18 11:33
从效率讲,switch更好一些。但从代码维护上讲,我觉得if...else更好一些。比如后期如果出现条件更改,以及 ...

有很多并列分支的话,还是Switch更直观一些,也比较经常用Switch。
比如对通讯协议的解析、对状态机的判断等。

使用特权

评论回复
评论
sagade 2023-3-20 17:02 回复TA
确实,状态机用ifelse的话太难看了,switch很直观 
25
jerkoh| | 2023-3-24 17:23 | 只看该作者
还好,我有个38000多行  的  if else 函数

使用特权

评论回复
26
asdsfgwsafd| | 2023-3-24 17:30 | 只看该作者
这代码其实不关if else 还是switch的事。
主要是不写注释

使用特权

评论回复
27
burningrider| | 2023-3-27 09:09 | 只看该作者
效率是不同的,Switch只适应于表达式与整数case。
如果能用Switch的,不要用if,不需要想.

如果是复杂的表达式,则要用if
如果分支只有两三个,也可以用if,简明

使用特权

评论回复
28
mickit| | 2023-4-9 14:22 | 只看该作者
在代码结构清晰、易读、易维护的前提下,选择更加简洁和高效的语句。

使用特权

评论回复
29
claretttt| | 2023-4-9 15:16 | 只看该作者
要实现多分支的条件判断,则推荐使用if else语句,因为switch语句只能有一个default分支。

使用特权

评论回复
30
jimmhu| | 2023-4-9 15:22 | 只看该作者
对于多个选项的情况,使用 switch 更加清晰:当需要在多个选项之间进行选择时,switch 语句通常比 if else 语句更加清晰和易读。在 switch 中,每个 case 表示一个选项,可以让代码结构更加明确。

使用特权

评论回复
31
mickit| | 2023-4-9 16:54 | 只看该作者
switch语句比if else更加简洁  

使用特权

评论回复
32
1988020566| | 2023-4-9 17:07 | 只看该作者
要对多个值进行相同的处理,则推荐使用switch语句,因为可以利用case合并多个值,使代码更加简洁。

使用特权

评论回复
33
sesefadou| | 2023-4-9 17:14 | 只看该作者
考虑代码可读性和可维护性:选择 switch 或 if else 语句时,还需要考虑代码的可读性和可维护性。

使用特权

评论回复
34
10299823| | 2023-4-9 17:20 | 只看该作者
据实际需要,结合两种语句的优点,使用更加灵活和高效的编程方式。

使用特权

评论回复
35
tabmone| | 2023-4-9 17:52 | 只看该作者
如果要判断的条件较为复杂,则推荐使用if else语句,因为switch语句只能支持严格的条件判断。

使用特权

评论回复
36
albertaabbot| | 2023-4-9 20:30 | 只看该作者
可以用switch语句实现的情况下,更推荐使用switch语句。

使用特权

评论回复
37
olivem55arlowe| | 2023-4-9 20:37 | 只看该作者
选择 switch 还是 if else 语句,需要根据具体情况进行权衡和选择。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则