在JavaScript中,switch語(yǔ)句是一種非常常用的控制語(yǔ)句,它可以根據(jù)不同的情況執(zhí)行不同的代碼。switch語(yǔ)句的結(jié)構(gòu)如下:
switch (expression) { case value1: // 執(zhí)行代碼塊 1 break; case value2: // 執(zhí)行代碼塊 2 break; case value3: // 執(zhí)行代碼塊 3 break; default: // 執(zhí)行代碼塊 4 }
其中,expression是要檢測(cè)的表達(dá)式,value1、value2、value3等是要與expression比較的值。
switch語(yǔ)句的使用場(chǎng)景很多,比如我們可以用它處理用戶輸入的命令,根據(jù)不同的命令執(zhí)行不同的操作。下面是一個(gè)簡(jiǎn)單的例子:
var command = prompt("請(qǐng)輸入命令:"); switch (command) { case "add": // 執(zhí)行“添加”操作 break; case "delete": // 執(zhí)行“刪除”操作 break; case "update": // 執(zhí)行“更新”操作 break; case "search": // 執(zhí)行“搜索”操作 break; default: alert("無(wú)效命令!"); }
在這個(gè)例子中,用戶輸入一個(gè)命令,程序根據(jù)不同的命令執(zhí)行不同的操作。
switch語(yǔ)句還可以用于多個(gè)條件的判斷。例如,下面的代碼可以判斷一個(gè)數(shù)字是正數(shù)、負(fù)數(shù)還是零:
var num = prompt("請(qǐng)輸入一個(gè)數(shù)字:"); switch (true) { case num > 0: alert("這是一個(gè)正數(shù)。"); break; case num < 0: alert("這是一個(gè)負(fù)數(shù)。"); break; default: alert("這是零。"); }
需要注意的是,switch語(yǔ)句的每個(gè)case都必須以break語(yǔ)句結(jié)束,否則程序會(huì)繼續(xù)執(zhí)行后面的代碼塊。比如下面這段代碼:
var num = 1; switch (num) { case 1: alert("這是1。"); case 2: alert("這是2。"); break; case 3: alert("這是3。"); break; default: alert("這不是1、2、3。"); }
如果num的值是1,會(huì)先執(zhí)行第一個(gè)case語(yǔ)句的代碼塊,然后繼續(xù)執(zhí)行第二個(gè)case語(yǔ)句的代碼塊,因?yàn)榈谝粋€(gè)case語(yǔ)句沒(méi)有break語(yǔ)句。如果想要第一個(gè)case語(yǔ)句執(zhí)行完畢后立即退出switch語(yǔ)句,可以在代碼塊末尾增加break語(yǔ)句。
除了break語(yǔ)句,還可以使用return語(yǔ)句來(lái)退出switch語(yǔ)句。例如:
function checkAge(age) { switch (true) { case age < 18: return "未成年"; case age >= 18 && age < 60: return "成年人"; default: return "老年人"; } } var myAge = prompt("請(qǐng)輸入您的年齡:"); var result = checkAge(myAge); alert("您是" + result + "。");
這個(gè)例子中,checkAge函數(shù)根據(jù)一個(gè)人的年齡返回相應(yīng)的字符串,然后在主程序中輸出結(jié)果。因?yàn)閟witch語(yǔ)句中的代碼塊都是 return語(yǔ)句,所以不需要使用break語(yǔ)句。
總之,switch語(yǔ)句是JavaScript編程中非常常用的控制語(yǔ)句,多用于根據(jù)不同條件執(zhí)行不同的操作。需要注意的是,每個(gè)case語(yǔ)句必須以break語(yǔ)句或return語(yǔ)句結(jié)束,否則程序會(huì)繼續(xù)執(zhí)行后面的代碼塊。