• 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语句,从它的结束大括号之后的第一个语句继续执行。

  • 相关阅读:
    -bash: /tyrone/jdk/jdk1.8.0_91/bin/java: cannot execute binary file
    maven依赖包下载地址
    极光推送java代码
    Shiro中session超时页面跳转的处理
    ABAP ole操作1
    OLE导出EXCEL 问题处理
    ABAP ole操作
    ABAP Memory ID
    重装GUI前备份GUI配置
    ABAP编辑器输入中文变成问号
  • 原文地址:https://www.cnblogs.com/pureEve/p/6564012.html
Copyright © 2020-2023  润新知