发现自己代码中用if的地方比较多,于是就在上周对case语句好好研究了一番并优化了自己的部分代码。因此出现了如下if和case的比较一说。声明当case的条件块中没用break时候,是和if一样的一个一个的条件来判断执行。当条件中有了break,编译器会为它做二分法优化(或跳转表),就是根据条件来跳转,平均性能高于if。
定义: docStatus该文档的当前状态
if 语句
在一个指定的条件成立时执行代码。
语法:if(条件)
{
条件成立时执行代码
}
例子:if(docStatus=="通过")
{
alert(“文档的当前状态为通过”);
}
说明: docStatus该文档的当前状态
注意:使用双等号 (==) 来比较变量!在语法中没有 else。仅仅当条件为 true 时,代码才会执行。
if...else 语句
在指定的条件成立时执行代码,当条件不成立时执行另外的代码。 如果希望条件成立时执行一段代码,而条件不成立时执行另一段代码,那么可以使用 if....else 语句。
语法:if(条件)
{
条件成立时执行代码
}
else
{
条件不成立时执行代码
}
例子:if(docStatus=="通过")
{
alert(“文档的当前状态为通过”);
}
else
{
alert(“文档的当前状态为没有通过”);
}
if...else if....else 语句
使用这个语句可以选择执行若干块代码中的一个。
当需要选择多套代码中的一套来运行时,请使用 if....else if...else 语句。
语法:if(条件1)
{
条件1成立时执行代码
}
else if (条件2)
{
条件2成立时执行代码
}
else
{
条件1和条件2均不成立时执行代码
}
例子:if(docStatus=="新文档")
{
alert(“文档的当前状态为新文档”);
}
else if(docStatus=="通过")
{
alert(“文档的当前状态为通过”);
}
else
{
alert(“文档的当前状态即不是新文档也不是通过”);
}
switch 语句
使用这个语句可以选择执行若干块代码中的一个。
如果希望选择执行若干代码块中的一个,你可以使用 switch 语句:
语法:switch(n)
{
case 1:
执行代码块 1
break
case 2:
执行代码块 2
break
default:
如果n即不是1也不是2,则执行此代码
}
工作原理:switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。然后表达式中的值会与 case 中的数字作比较,如果与某个 case 相匹配,那么其后的代码就会被执行。break 的作用是防止代码自动执行到下一行。
说明:num为整数数字。
例子1:
switch(num)
{
case 1:
alert(“show 1!”);
break
case 2:
alert(“show 2!”);
break
case 3:
alert(“show 3!”);
break
default:
alert(“show others!”);
break;
}
例子2:
switch(num)
{
case 1:
alert(“show 1!”);
//没有break,接续执行case2
case 2:
alert(“show 2!”);
break
case 3:
alert(“show 3!”);
//没有break,接续执行case4
case 4
alert(“show 4”);
break;
default:
alert(“show others!”);
break;
}
例子3:
switch(num)
{
case 1:
case 2:
//想到于if(num==1 ||num==2)
alert(“show 1 or 2!”);
break
case 3:
case 4
//想到于if(num==3||num==4)
alert(“show 3 or 4
break;
default:
//相当于else
alert(“show others!”);
break;
}
例子4:
switch(num<=2){
case true:
alert(num<=2);
break;
case false:
alert(num>2);
break;
}
小结:
1.case后面一定要是常量(就是一个不可变的量);
2.当条件的分支很多时(通常超过六个)使用switch...case的效率将高于多重if_else语句(在汇编层switch...case是查找表,if语句是跳转:);
3. switch语句只能比较常量,而if语句不限比较类型和内容。可以使用double,float,string或是自定义的类型。