首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    if快还是switch快?解密switch背后的秘密

    重要程度和使用频率更是首屈一指,那我们要如何选择 if 还是 switch 呢?他们的性能差别有多大?switch 性能背后的秘密是什么?接下来让我们一起来寻找这些问题的答案。...switch VS if 我在之前的文章《9个小技巧让你的 if else看起来更优雅》中有提过,要尽量使用 switch 因为他的性能比较高,但具体高多少?以及为什么高的原因将在本文为你揭晓。...性能分析 为什么 switch 的性能会比 if 的性能高这么多?...从上面的字节码可以看出,在 switch 中只取出了一次变量和条件进行比较,而 if 中每次都会取出变量和条件进行比较,因此 if 的效率就会比 switch 慢很多。...switch 的秘密 对于 switch 来说,他最终生成的字节码有两种形态,一种是 tableswitch,另一种是 lookupswitch,决定最终生成的代码使用那种形态取决于 switch 的判断添加是否紧凑

    2.6K40

    if语句、switch语句

    二、switch语句 switch语句是一种特殊形式的if...else...结构,用于判断条件有多个结果的情况。它把多重的else if改成更易用、可读性更好的形式。...注意: switch后的expression必须是整形表达式 case后的值必须是整形常量表达式 1.if语句和switch语句的对比 输入任意一个值,计算除3之后的数 使用if语句: #include...原因是switch语句也是分支效果的,只有在switch语句中使用break才能跳出switch语句,如果某一个case语句后面没有break语句,代码就会继续执行下去,有可能执行到其它case语句中,...直到遇到break语句或者switch语句结束。...语句中的default 在使用switch语句的时候,我们经常可能遇到一种情况,比如switch后的表达式中的值无法匹配代码中的case语句的时候,就不得不在switch语句中加入default子句。

    50210
    领券