本帖最后由 逆袭的风 于 2013-8-2 18:58 编辑
switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。
相比于if-else结构,switch的效率绝对是要高很多的,但是switch查找的方式决定了使用上不如if-else灵活多变。
另外:if 一般适用于情况较少的条件出现,要么执行A,要么执行B。
但是有时要用到众多的if 就非常的繁琐,像这种多分支的选择,我们一般采用switch.switch 适合多种情况,且变量是精确值.
|