JS:流程控制(if,switch)高级 + Switch Case中的经典

转载 2013年12月06日 11:14:45

Switch Case中的经典

昨天在看JavaScript优化脚本时,其中有一条是使用三元运算符以及switch语句。关于优化代码时,使用Switch Case比If Else要快,这点我们知道,但是三元运算符呢?
在JavaScript精粹一书中提到,使用三元运算符比使用If Else语句要快。关于原因,书中并没有过多的介绍,我想这大概是因为使用三元运算符要比使用If Else代码要优化的多吧。好了,下面我们来看一个使用三元运算符的例子吧。
Var grade=score>=70?’pass’:fail;
此外,三元运算符也可以像If Else一样多层嵌套使用,不过为了增强其可读性,通常将代码分行写。看一下小例子:
Var grade=score>=90?’Good’:score>70?’Well’:’fail’;
Var grade=score>=90?’Good’:
    Score>70?’Well’:
    ‘fail’;
怎么样,上面使用三元运算符要比使用If Else节省不少代码空间吧。
关于三元运算符就说这么多,下面再说两个你没有用到过的Switch Case语句,不信?看看你就知道了。
Classical Switch Case:
 Switch case (score){
  Case 90:
   grade=’Good’;
   Break;
  Case 70:
   grade=’Well’;
   Break;
  Default:
   Grade=’fail’;
}
 New Pet Switch Case:
  Switch case (true){
   Case score>=90:
    Var grade=’Good’;
    Break;
   Case score>70:
    Var grade=’Well’;
    Break;
   Default:
    Var grade=’fail’;
}
 Fast Switch Case:
  Switch (score>=70){
   Case true:
    Var grade=’pass’;
    Break;
   Case false:
    Var grade=’fail’;
    Break;
   Default:
    Grade=’It’s impossible to get this result!’;
}
 关于上面这三个Switch Case,毫无疑问,第一个是我们最熟悉的,也是最常用的,而且通过比较,可以发现第一个Switch Case的代码要比第二个要简单而且优化。但是两个Switch Case语句判断的条件不同,第一个判断的是一个表达式,第二个判断的是一个Bool值,我想判断Bool值应该比判断表达式速度要快。可惜目前百度Google没有给我明确的答案。
 此外,采用第二种判断结构在判断复杂条件时,优势更明显,而且有些复杂结构无法用第一种结构来判断。比如说,我去超市购物了,看到好多东西要买,就买了一些东西回来。如何使用Switch Case来判断我买了什么呢?看Example:
 Switch Case (true){
  Case apple>0
   Respose.write(“我买苹果啦!”);
  Case banana>0
   Respose.write(“我买香蕉啦!”);
  Case orange>0
   Respose.write(“我买橘子啦!”);
  Case else
   Respose.write(“忘了带钱了,回家拿钱去吧!”);
 }
 关于Switch Case,如果你有什么更新的想法,请联系我!


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

流程控制(if,switch)高级

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If 语句

如果希望指定的条件成立时执行代码,就可以使用这个语句。

语法:

if (条件)  {  条件成立时执行代码  }   

注意:请使用小写字母。使用大写的 IF 会出错!

实例 1

<script type="text/javascript">  
//Write a "Good morning" greeting 
if  //the time is less than 10
var d=new Date()  
var time=d.getHours()    
if (time<10)   
{  document.write("<b>Good morning</b>")  }  
</script>

实例 2

<script type="text/javascript">  
//Write "Lunch-time!" 
if the time is 11    
var d=new Date()  
var time=d.getHours()    
if (time==11)   
{  document.write("<b>Lunch-time!</b>")  }  
</script>

注意:请使用双等号 (==) 来比较变量!

注意:在语法中没有 else。仅仅当条件为 true 时,代码才会执行。

JS:2.1.1,if 返回顶部
复制代码
<html>
<body>

<script type="text/javascript">
var d = new Date()
var time = d.getHours()

if (time < 10) 
{
document.write("<b>早安</b>")
}
</script>

<p>本例演示 If 语句。</p>

<p>如果浏览器时间小于 10,那么会向您问“早安”。</p>

</body>
</html>
复制代码
JS:2.1.2,if-else 返回顶部
复制代码
<html>
<body>

<script type="text/javascript">
var d = new Date()
var time = d.getHours()

if (time < 10) 
{
document.write("<b>早安</b>")
}
else
{
document.write("<b>祝您愉快</b>")
}
</script>

<p>本例演示 If...Else 语句。</p>

<p>如果浏览器时间小于 10,那么会向您问“早安”,否则会向您问候“祝您愉快”。</p>

</body>
</html>
复制代码
JS:2.1.2,if-else_if-else返回顶部
复制代码
<html>
<body>

<script type="text/javascript">
var d = new Date()
var time = d.getHours()
if (time<10)
{
document.write("<b>Good morning</b>")
}
else if (time>=10 && time<16)
{
document.write("<b>Good day</b>")
}
else
{
document.write("<b>Hello World!</b>")
}
</script>

<p>本例演示 if..else if...else 语句。</p>

</body>
</html>
复制代码
JS:2.1.3,switch返回顶部

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<pre>
JavaScript Switch 语句
如果希望选择执行若干代码块中的一个,你可以使用 switch 语句:

语法:
switch(n)
   {
   case 1:
     执行代码块 1
     break
   case 2:
     执行代码块 2
     break
   default:
     如果n即不是1也不是2,则执行此代码
   }
工作原理:switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。
然后表达式中的值会与 case 中的数字作比较,如果与某个 case 相匹配
,那么其后的代码就会被执行。break 的作用是防止代码自动执行到下一行。

实例:
</pre>
<script type="text/javascript">
//You will receive a different greeting based
//on what day it is. Note that Sunday=0,
//Monday=1, Tuesday=2, etc.

var d=new Date()
theDay=d.getDay()

switch (theDay)
   {
   case 5:
     document.write("Finally Friday")
     break
   case 6:
     document.write("Super Saturday")
     break
   case 0:
     document.write("Sleepy Sunday")
     break
   default:
     document.write("I'm looking forward to this weekend!")
}
</script>
</body>
</html>
复制代码

 

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


一道有关switch-case题目

一道有关switch-case题目/** * * @title:SwitchCase.java * @Package:com.you.hbxs.model * @Description:一句话...
  • you23hai45
  • you23hai45
  • 2016年02月24日 23:23
  • 1659

JavaScript: switch用法及注意事项

switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串“10”不等于数值10)...
  • Le_JackChen
  • Le_JackChen
  • 2017年09月19日 11:24
  • 463

Swift学习笔记(二十八)——Switch-Case的高级用法

(1)Switch可以对整型的范围进行判断。代码如下: import Foundation let a = 85 switch a{ case 1.....
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年09月16日 13:18
  • 1641

js switch语句祥解(什么是JS的switch语句)

                              js switch语句祥解(什么是JS的switch语句)在这里由于时间关系,我先摘抄一段关于JS SWITCH语句的一般用法,如下: sw...
  • fc_lamp
  • fc_lamp
  • 2009年08月04日 22:36
  • 25797

【那些年遇到过的面试题】switch case default

 #include   int main()  { int i = 4;  switch(i) { case 8:  i += 5;  break; ...
  • carol123456
  • carol123456
  • 2016年06月28日 14:51
  • 446

JavaScript Switch 语句的详解

JavaScript Switch 语句 请使用 switch 语句来选择要执行的多个代码块之一。 语法 switch(n) { case 1: 执行代码块 1 br...
  • huaishitou
  • huaishitou
  • 2014年04月27日 11:46
  • 1727

JavaScript-for循环语句,if语句,switch语句

/*do-wile 后测试循环语句,即只有在循环体中的代码被执行后,才会测试出口条件 * * 在对表达式求值之前,循环体内的代码至少会被执行一次 * * 常用语循环体中的代码至少被执行一次...
  • qq_26927285
  • qq_26927285
  • 2017年03月22日 22:56
  • 312

javascript中switch语句

html> html lang="en"> head> meta http-equiv="content-type" content="text/html;charset=UTF-8"> ...
  • pangqiandou
  • pangqiandou
  • 2016年11月10日 16:00
  • 977

Switch Case语句中多个值匹配同一个代码块的写法

from : http://blog.163.com/lgh_2002/blog/static/44017526201010274358399/ 版本 1: switch ($p) { ...
  • qdujunjie
  • qdujunjie
  • 2014年11月24日 12:17
  • 4164

switch/case语句支持的数据类型

/** * switch...case语句支持的数据类型 1.int 2.枚举 3.String * * @author ZHOUMI2 * */ public class SwithTe...
  • wuya814070935
  • wuya814070935
  • 2015年09月11日 14:43
  • 2535
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS:流程控制(if,switch)高级 + Switch Case中的经典
举报原因:
原因补充:

(最多只允许输入30个字)