優(yōu)化代碼:使用switch語(yǔ)句
假設(shè)一道題目有A、B、C、D、E五個(gè)答案,只有一個(gè)為正確答案。我們可以使用if...else if語(yǔ)句來(lái)編寫(xiě)代碼來(lái)判斷答案的正確與否。 var i "E"; if (i "A") {
假設(shè)一道題目有A、B、C、D、E五個(gè)答案,只有一個(gè)為正確答案。我們可以使用if...else if語(yǔ)句來(lái)編寫(xiě)代碼來(lái)判斷答案的正確與否。
var i "E";
if (i "A") {
document.write("回答錯(cuò)誤");
} else if (i "B") {
document.write("回答錯(cuò)誤");
} else if (i "C") {
document.write("回答錯(cuò)誤");
} else if (i "D") {
document.write("回答錯(cuò)誤");
} else if (i "E") {
document.write("回答正確");
}
優(yōu)化代碼:switch語(yǔ)句
上述代碼雖然能夠解決問(wèn)題,但是代碼過(guò)長(zhǎng),閱讀不方便、編輯也繁瑣。我們可以通過(guò)使用switch語(yǔ)句來(lái)優(yōu)化這個(gè)需求,如下所示。
var i "E";
switch (i) {
case "A":
document.write("回答錯(cuò)誤");
break;
case "B":
document.write("回答錯(cuò)誤");
break;
case "C":
document.write("回答錯(cuò)誤");
break;
case "D":
document.write("回答錯(cuò)誤");
break;
case "E":
document.write("回答正確");
break;
}
使用break語(yǔ)句退出switch語(yǔ)句
break語(yǔ)句用來(lái)退出switch語(yǔ)句的執(zhí)行,每個(gè)case語(yǔ)句后面都應(yīng)該跟上break語(yǔ)句。如果不加break語(yǔ)句,即使匹配成功,程序仍然會(huì)繼續(xù)執(zhí)行下去。
switch語(yǔ)句是if語(yǔ)句的優(yōu)化版
switch語(yǔ)句是if語(yǔ)句的一種優(yōu)化方式,并不是說(shuō)比if語(yǔ)句更重要。根據(jù)具體需求,使用switch語(yǔ)句可以讓代碼更簡(jiǎn)潔明了。
在switch語(yǔ)句中,我們還可以添加一個(gè)default語(yǔ)句,類似于if語(yǔ)句中的else語(yǔ)句,用于處理沒(méi)有任何匹配情況下的代碼。
使用switch語(yǔ)句簡(jiǎn)化代碼
當(dāng)題目的正確答案只有A、B、C其中一個(gè)時(shí),使用switch語(yǔ)句可以大大減少代碼量。相對(duì)而言,如果使用if語(yǔ)句,代碼將會(huì)變得冗長(zhǎng)。
這是由于switch語(yǔ)句具有break語(yǔ)句的特性,一旦匹配成功,就會(huì)立即退出,而不會(huì)繼續(xù)執(zhí)行下去。
條件運(yùn)算符(?:)
條件運(yùn)算符(?:)是一種簡(jiǎn)潔的表達(dá)式,它先計(jì)算問(wèn)號(hào)(?)之前的表達(dá)式,如果結(jié)果為true,則返回冒號(hào)(:)之前的值,否則返回冒號(hào)(:)之后的值。
例如,(i "對(duì)") ? "回答正確" : "回答錯(cuò)誤" 的運(yùn)算結(jié)果是根據(jù) i 是否等于 "對(duì)" 來(lái)決定的。