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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


C++程序员学Java系列之十一:流程控制语句switch,case,break,default

选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。 例如,在程序中使用数字1~7来表示星期一到星...

C语言基础 选择结构 流程控制 If Switch

switch switch(表达式){ case 常量; 语句; … break; case 常量; 语句; … break; default; 语句; … break; ...
  • lyh9222
  • lyh9222
  • 2014年11月08日 22:54
  • 382

程序流程控制 if switch while do while for

判断结构 选择结构 循环结构 顺序结构

流程控制陷阱(Switch语句,标签,if语句,for循环,foreach循环的循环计数器)

1.  流程控制的陷阱1.1  Switch语句陷阱 Switch语句后可以指定一个表达式,系统根据表达式的值来决定执行哪个case分支的执行体。对于switch语句的表达式而言,只能是如下5种...

JAVA中的流程控制 if switch

在JAVA程序中,代码执行顺序是由上往下依次执行的,有三种方法可以改变代码的执行顺序 1.方法的调用 2.选择语句 3.循环语句选择语句和循环语句都需要用到boolean逻辑 布尔逻辑 布...

JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学——献给刚入门的小程序员们 一.语...

JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)

Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句) 本博文将对JAVA中组成各种结构的控制语句进行重点介绍,主要内容是区别于C/C++中的流程控制语句的重点解...

Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)

程序流程控制:   程序流程控制的结构有: l  判断结构 l  选择结构 l  循环结构 l  If  switch  do while   while  for ...

程序流程控制(一)— if判断、switch分支判断

1. if判断 语法: if( 条件判断表达式 ){        执行语句… }注意:if的判断的条件的结果一定是 bolean 类型。如果条件判断的表达式的返回值是 true,则可以执行...

Go学习笔记 (二) : 流程控制(if,for,switch) 与 函数 与 struct (匿名字段)

为了扩展的扩展流程控制ifif condition { // do something } else if condition {}if 后接条件语句(表达式) , 无括号 if 9>8 { ...
  • guddqs
  • guddqs
  • 2017年05月26日 18:51
  • 197
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS:流程控制(if,switch)高级 + Switch Case中的经典
举报原因:
原因补充:

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