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的例子考到你的本地進行測試