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使用。
添加关注第一时间收到通知
原创不易,如果觉得有用,可以随手转发或者”在看“