一、我们在流判断的时候,我们大多数的情况我使用if  else 语句。但是对于一些大量的逻辑的判断的时候,我们不建议使用if elseif语句 这种语句的效率执行不高,因为他每个expression 都需要进行计算判断,而switch case语句,在效率上更比if语句更高

其原理他本身根据生成的静态表,通过索引进行匹配效率高于if语句。

执行流程:

switch (expression){

case value1:

statement

break

case value2:

statement

break

.......

default:

statement

}

首先执行switch内的expression,计算值,然后进行case进行判断。匹配到case,执行对应的statement  如果有break,则跳出switch语句,如果没有则执行剩下的case语句,最后执行default 内的语句。如果带有break的,当匹配执行完case的时候,不会执行default 语句。如果

没有匹配到case最后执行default语句。

需要注意:switch语句的case匹配是全等匹配。不存在类型转换这点不同于if语句。

 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var date=new Date();
switch(date.getDate()){
case :
alert();
case :
alert();
case :
alert();
case :
alert()
case :
alert()
default:
alert('default')
}
</script>
</body>
</html>

如上switch语句,如果没有break的语句。在执行完的匹配的执行语句的时候,还会执行default语句。

加上break则匹配到case语句之后,不会执行default语句。此时default语句相当于if中的else部分。

 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var date=new Date();
switch(date.getDate()){
case :
alert();
break;
case :
alert();
break;
case :
alert();
break;
case :
alert();
break;
case :
alert();
break;
default:
alert('default')
}
</script>
</body>
</html>

一般的情况下 我们会用switch做一些值 的判断,当然我们可以进行逻辑的判断

 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var num=;
switch(true){
case num>:
alert("大于24!");
break;
case num<&&num>:
alert("大约20,小于24!");
break;
case num===:
alert("等于24");
break;
default:
alert("判断不了")
}
</script>
</body>
</html>

最新文章

  1. HTML5新增及移除的元素
  2. [转]Dropdownlist doesn&#39;t postback after Page_ClientValidate()
  3. spark 部署问题
  4. namenode需要升级
  5. Android 获取本地图片
  6. phpcms 03
  7. POJ 2516 Minimum Cost [最小费用最大流]
  8. iOS开发之都兴忱小结
  9. transfrom属性
  10. UIScrollView 滑动试图
  11. 不要再坑人啦!NSOperation才是苹果推荐使用的多线程技术!
  12. win10 uwp 截图 获取屏幕显示界面保存图片
  13. hkws摄像头拆机
  14. 大型网站架构演进(6)使用NoSQL和搜索引擎
  15. 洛谷P1127-词链
  16. leecode第一百六十九题(求众数)
  17. c基础:函数参数是 struct(结构),传的是引用,还是值?
  18. MySQL中文参考手册
  19. 关于vector变量的size,是一个无符号数引发的bug。LeetCode 3 sum
  20. 算法笔记_021:广度优先查找(Java)

热门文章

  1. RequestDispatcher.forward转发与HttpServletResponse.sendRedirect重定向
  2. bootstrap datetimepicker日期插件美化
  3. drupal7 获取profile2模块自定义字段的值
  4. Java内部类的介绍
  5. Android 编程下的 TraceView 简介及其案例实战
  6. React Native中的约束规范
  7. Appium环境搭建(MAC版)
  8. Python+Selenium笔记(五):生成测试报告
  9. aop 拦截含有特定注解的类
  10. Session[&quot;Write&quot;] = &quot;Write&quot;;