zoukankan      html  css  js  c++  java
  • 浅谈你对switch的理解以及switch和if的应用场景

      平时一般用if,switch用的很少,有必要简单总结下两者的区别:

    一、对switch的理解

    1、switch的括号里面放的是一个变量

    2、case相对应的值是关于这个变量的一个值

    3、switch里面的这个变量和case里面这个变量不会进行隐式类型的一个转换,而是进行了恒等比较所以一定要注意这个变量和这个case里面的值是不是一个类型。

    4、关于switch里面的case会有一个穿透效果,这个效果有的时候会给我们带来好处,有的时候会给我们带来坏处,如果不需要这种穿透效果的时候,需要加break

    5、swicth里面如果这个变量没有匹配到case里面这个值,那么就需要返回一个信息。所以在case的末尾一定要加上一个default,这样既给用户的体验比较完美,另一方面对代码的今后维护也有很大的帮助

    6、比较的值都是固定值

    二、switch工作原理

    1、首先设置表达式 n(通常是一个变量)

    2、随后表达式的值会与结构中的每个 case 的值做比较,如果有就执行对应的语句体,看到break就结束。

    3、如果没有匹配,就执行default的语句体。

    三、注意事项

    1、case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的值

    2、default可以省略吗?可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

    3、break可以省略吗?可以省略,但是结果可能不是我们想要的,会出现一个现象:case穿透,最终我们建议不要省略

      case穿透和break有关,只有当遇到break时才会终止,不然会继续执行后面case中的代码块

    4、default一定要在最后吗?不是,可以在任意位置。但是建议在最后。

      default的位置不会影响执行结果,不管你编写的代码中default放在那里,这里的条件判断都是先按顺序比较其他非default值,当这些条件都不满足的时候,才跳转到default的相应代码处执行。

    5、switch语句的结束条件

      (1)遇到break就结束了;

      (2)执行到末尾就结束了。

    四、switch和if的应用场景

    if :

      1、具体的值进行判断

      2、区间的判断

      3、对运算的结果是boolean类型表达式进行判断  true   false

    switch:

      1、对具体的值进行判断

      2、值的个数是固定的。对于几个固定的值判断,建议使用switch 语句。因为switch 语句会将具体的答案都加载进内存,效率相对高一点。

      基于代码的可读性:如果条件较少时,if-else容易阅读,而条件较多时,switch更容易阅读

  • 相关阅读:
    【转】PG数据库高级用法 之 12306 -- 链接
    javascript实现浏览器管理员工具鼠标获取Html元素 并生成 xpath
    java图片识别 [Tesseract-OCR]
    MongoDB从环境搭建到代码编程(Window 环境)
    webDriver + Firefox 浏览器 完美兼容
    SQLServer 将日期改造成标准日期格式(如: 2016/6 ->201606)
    Angularjs+bootstrap 实现横向滑屏
    js数组长度
    Angularjs 跨域post数据到springmvc
    Oracle 18c 数据库中scott用户不存在的解决方法
  • 原文地址:https://www.cnblogs.com/goloving/p/12895446.html
Copyright © 2011-2022 走看看