if和switch区别

应用层面:

      IF 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断;

      而 SWITCH只能对基本类型进行数值比较。两者的可比性就仅限在两个基本类型比较的范围内。

 

寄存器读取:

     eg_if:如果对(int a) a 来判断:

     if(a==1){

        //do something

      }else if(a==2){

         //do something

      } ......

     这样的话,a在寄存器中就被读取了多次,每一次判断都会读取一次。显然,我们比较的是同一个对象a,读取多次没有必要。

 

  eg_switch:如果对(int a) a 来判断:

     switch (a) {
        case 0:

                //do something
                break;
        case 1:

                //do something
                break;
       }

    寄存器对a只读取一次,每个case都和读取的a做比较。

 

  运行效率:

(未进行本地测试,网络答案)

  Switch语句击中第三个选项的时间跟if/else if语句击中第三个选项的时间相同。
  击中第一,第二选项的速度if语句快,击中第四以及第四之后的选项的速度switch语句快。

  5个选项(包括default)的情况下,switch和if/else if相同。低于5个选项if快,高于5给选项switch快。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值