switch case,一个糟糕的设计!!!

1 什么时候需要使用switch case?

说到switch case我们通常都会想到 if else,相较于if else支持任何数据类型、表达式和变量,而switch case只是支持short、byte、char、int、String和枚举。因为switch case内部逻辑控制清晰的原因,当业务判断超过三个以上,我们比较建议使用switch case。

2 switch case特性

case后面只能跟一个普通字符,语义跟一个普通标签没什么区别,因为具有fall through特性(如下图所示)

3 fall through弊端

switch case设计之初的目的是便于编译器设计和优化,以及能够满足一些特殊的使用场景,但是平时很难碰到这种场景,通常程序员在写代码的过程中,大多借助break或者return的帮忙,以保持代码逻辑结构清晰性,此情况下,若使用fall through特性反而可能会破坏掉这种局部的结构性。

对于简单的控制逻辑还行,有时case的具体业务逻辑中可能存在for循环之类逻辑,这个时候即使在for循环写了break,但是对于整个swtich case来说没什么影响。,如果此时你没有灵活使用break或者return ,从此将埋下不定时炸弹,在意向不到的地方引爆。

4 总结

switch case和if else并不等价,使用switch case要注意配合break和return使用。

添加关注第一时间收到通知

原创不易,如果觉得有用,可以随手转发或者”在看“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值