关于if和switch的区别,if和switch的区别和用法这个很多人还不知道,今天小蚪来为大家解答以上的问题,现在让我们一起来看看吧!

if和switch的区别(if和switch的区别和用法)if和switch的区别(if和switch的区别和用法)


if和switch的区别(if和switch的区别和用法)


if和switch的区别(if和switch的区别和用法)


1、case:主要因为switch不适合业务系统的实际复杂需求,业务不断的变更迭代,一更改需求,条件的复杂度高了,switch无力处理。

2、else ifswitch优点那么什么时候适合switch,它的场景是:基于单一变量的值(如枚举),这样的可读性比if条件更清晰。

3、switch缺点从上面的场景来看,实在太局限,我来简单说一下它的一些缺点吧:1. 现实的业务场景很复杂,条件不单一,一旦需求变更,维护代码相当崩溃。

4、2. switch经常忘记写break,估计很多人一不小心就忘记写了。

5、如果你看过google的代码规范,你会发现,Google对switch的要求非常多。

6、switch的封装才更灵活其实switch有人还在用也有一部分是 历史 原因,但是随着 科技 的发展,原有的设计以及落后了。

7、IF语句的好处通过上面描述的缺点也就是if语句更灵活的地方,根据业务进行逻辑条件编写,可维护性高。

8、同时只要写的代码质量高,可读性也就会更高。

9、建议我个人觉得switch其实非常多余。

10、1 大部分场景,都是2到3个可能分支,用个if else就可以了,除非有4 个以上分支,太多else显得不好看,才考虑用switch.2 switch限制多。

11、switch必须是常量变量。

12、if后面可以写任意表达式。

13、3用法复杂,case后面要么break,要么return,要是不写,居然还会继续执行剩下的分支,对于新手来说分分钟掉坑。

14、4 写法上其实也不比if else优雅简洁,switch xxx case xxxx ….如果有10000种switch的可能性,有1000000个值需要被处理,怕是你们说的这些个switch的好处就完全消失了,预期平均每次要比较5000次,1000000个值,总计要比较50亿次,不知道你们的CPU是啥主频能扛得住这个计算量,针对这种情况的武器还是hash,根据不同的语言,hash的value可以是匿名函数,可以是接口的不同实现,用hash来快速确定处理算法,而不是switch作为程序员来说,我更喜欢switch的结构,更直观更容易找到相应的代码块。

15、不过为什么很多程序员不用Switch,而是使用大量的if...else if的结构,甚至像Python已经不支持原生Switch语法了?这个原因很简单,因为switch语法结构编译还是通过if...else if来完成代码的,所以从效率角度来说和if...else if一样的。

16、但是switch对比条件比较单一,绝大多数支持switch的编程语言都支持等于比较,也就是说变量只能等于case中的条件才会执行代码块。

17、但是现实情况中,对比条件绝大多数比单一等于运算要复杂得多,因此很多程序员就直接使用if...else if。

18、但是if...else if的结构,后期维护起来会比较不清晰,毕竟没有Case...Break那么直观。

19、但是添加一些注解应该还是能解决这个问题的。

20、所以,我现在能使用Switch的时候还是会使用switch,毕竟后期代码维护起来方便点。

21、不过更多时候还是用if...else if。

22、switch只能用于简单判断,不支持表达式。

本文到这结束,希望上面文章对大家有所帮助。