zoukankan      html  css  js  c++  java
  • if else与switch区别

    一、if-else

    只是单纯地一个接一个比较;if...else每个条件都计算一遍;

    二、switch

    使用了Binary Tree算法;绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true

    编译器编译switch与编译if...else...不同。不管有多少case,都直接跳转,不需逐个比较查询;switch只计算一次值,然后都是test , jmp,

    有很多else if的时候,用switch case比较清晰

    switch使用查找表的方式决定了case的条件必须是一个连续的常量。而if-else则可以灵活的多。

    三、总结

    当只有分支比较少的时候,if效率比switch高(因为switch有跳转表)   
    分支比较多,那当然是switch

    四、switch case语句

    switch (表达式){
    case 值1 : 语句1
    break;

    case 值2 : 语句2
    break;

    ...
    default : 语句n
    break;
    }

    从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。
    假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句。
    假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

  • 相关阅读:
    错误: error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. 的处理方法
    C语言习题
    嵌入式芯片STM32F407
    c语言课后习题
    求方程式的根
    C语言课后习题
    LINUX常用指令
    在 pythonanywhere 上搭建 django 程序(Virtualenv+python2.7+django1.8)
    Git远程操作详解
    ./configure,make,make install的作用
  • 原文地址:https://www.cnblogs.com/pureEve/p/6564012.html
Copyright © 2011-2022 走看看