前言 switch 這種表達式在很多語言中都有,比如java, C等待, 使用switch比使用if else 來得方便,來得清晰。
使用語法很簡單:
復制代碼 代碼如下:
switch(n)
{
case 1:
執行代碼塊 1
break;
case 2:
執行代碼塊 2
break;
default:
n 與 case 1 和 case 2 不同時執行的代碼
}
各種語言的使用基本類似。
需要特別提出的時,在java 1.6 及以下版本, 變量(n)只能是整型。在java 7 之後支持String類型了。
在js 中, 是可以直接使用String 類型。
使用實例 復制代碼 代碼如下:
<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
function funcSwitch(sFlag)
{
switch(sFlag)
{
case "Test1":
alert("Test1");
break;
case "Test2":
alert("Test2");
break;
default:;
}
}
funcSwitch("Test2");
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
邏輯很簡單, 代碼很簡單。 直接使用string 來區分。
Case 對應的條件值也是變量 如果case 後面對應的不是一個字符串,而是一個變量的話。可以結合RegExp 達成。
復制代碼 代碼如下:
<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var str1 = "Test1";
var str2 = "Test1";
function funcSwitch(sFlag)
{
var regExp = new RegExp(sFlag);
switch(true)
{
case regExp.test(str1):
alert("Test1");
break;
case regExp.test(str2):
alert("Test2");
break;
default:;
}
}
funcSwitch("Test1");
</script>
</HEAD>
<BODY>
</BODY>
</HTML>