switch 语句
switch 语句是 if 语句的兄弟语句。
开发者可以用 switch 语句为表达式提供一系列的情况(case)。
switch 语句的语法:
switch (expression)
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
...
case value: statement;
break;
default: statement;
每个情况(case)都是表示“如果 expression 等于 value,就执行 statement”。
关键字 break 会使代码跳出 switch 语句。如果没有关键字 break,代码执行就会继续进入下一个 case。
关键字 default 说明了表达式的结果不等于任何一种情况时的操作(事实上,它相对于 else 从句)。
switch 语句主要是为避免让开发者编写下面的代码:
if (i == 20)
alert("20");
else if (i == 30)
alert("30");
else if (i == 40)
alert("40");
else
alert("other");
等价的 switch 语句是这样的:
switch (i) {
case 20: alert("20");
break;
case 30: alert("30");
break;
case 40: alert("40");
break;
default: alert("other");
}
上面的是js SWITCH语句的一般用法,但是相信很同仁与我一样还想SWITCH语句能作相应的比较判断,
其实这在JS SWITCH语句中是允许的,具体怎么做呢?方法如下:
var s_level=10*Math.random();
switch(true){
case s_level<10 :
alert('less than 10');
break;
case s_level<20 :
alert('less than 20');
break;
default :
alert('More than 20');
}
从上面,可以看出,只要在SWITCH中加上TRUE即可进行比较运算了。
JS SWICTH语句注意点:
1 在SWITCH中没有TRUE参数时,只能是相等判定控制,即“如果 expression 等于 value,就执行 statement”
2 加TRUE参数后,即可进行比较运算控制了。
3 还应注意在“case value:”case与value之间是有空格的,这点要十分注意.
类比PHP SWITCH语句
另外注明:某一天,我的一个同仁突然问我那PHP SWITCH 能不能作值比较呢?
其实编程语言的流程控制结构都是相同(通)的,不同的只是它的基本语法以及自带的函数库不同。
我举个例子,如下:
<?php
$s_level=rand(1,6);
echo $s_level.'<br/>';
switch(true){
case $s_level<3 :
echo 'less than 3';
break;
case $s_level>5 :
echo 'more than 5';
break;
default :
echo 'ok';
}
我将变量$S_level的值设置为[1,6]这样一个区间,然作了如上的比较。
其实质与JS的一样。有兴趣的朋友可以将我这里PHP SWITCH与JS SWITCH的例子考到你的本地进行测试