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

2019-11-26 15:21:13 浏览数 (1)

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使用。

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

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

0 人点赞