上一節(jié)學(xué)習(xí)了基本的條件語(yǔ)句,也即二分支語(yǔ)句。
現(xiàn)在有一個(gè)新需求,你需要寫一個(gè)腳本,根據(jù)學(xué)生的考試分?jǐn)?shù),輸出學(xué)生的考評(píng)。規(guī)則如下:
- 考試分?jǐn)?shù)大于等于80分,優(yōu)秀
- 考試分?jǐn)?shù)大于等于70分,小于80分,良
- 考試分?jǐn)?shù)大于等于60分,小于70分,中
- 考試分?jǐn)?shù)小于60分,不及格
如果應(yīng)用上一節(jié)的2分支語(yǔ)句,我們會(huì)寫出如下的代碼:
var score = 18
if (score>=80){
console.log("優(yōu)秀") // 分支1
}
else{
if (score>=70){
console.log("良") // 分支2
}
else{
if (score>=60){
console.log("中") // 分支3
}
else{
console.log("不及格") // 分支4
}
}
}
上面的代碼反復(fù)使用 if...else... 條件語(yǔ)句來解決此問題。我們來看一下運(yùn)行結(jié)果:

可以看到,程序正確輸出了考評(píng)。上面存在if...else...的嵌套使用,使得代碼邏輯并不是那么清晰。
嵌套的涵義是, if...else... 分支語(yǔ)句中又使用了 if...else...
在JavaScript中可使用 else if 多分支語(yǔ)句字來處理上述問題。多分支語(yǔ)句的語(yǔ)法規(guī)則如下:
if (condition_1) {
statement_1;
}
[else if (condition_2) {
statement_2;
}]
... // 可以擁有1個(gè)至多個(gè) else if 分支
else {
statement_n;
}
else if 語(yǔ)句被插入到if與else之間,else if 自帶了一個(gè)條件判定 condition,如果conditon為true,則else if 分支將被執(zhí)行。
下面使用 else if 來優(yōu)化一下上問的腳本。優(yōu)化代碼如下:
var score = 18
if (score>=80){
console.log("優(yōu)秀") // 分支1
}
else if(score>=70){
console.log("良") // 分支2
}
else if (score>=60){
console.log("中") // 分支3
}
else{
console.log("不及格") // 分支4
}
可以看到,前一個(gè)腳本中的if...else...嵌套不見了,現(xiàn)在所有的分支都同級(jí)了,代碼邏輯變得異常清晰。我們?cè)倏匆幌逻\(yùn)行結(jié)果:

可以看到,腳本正確輸出了考評(píng)。所以使用 else if 與使用 if...else... 是等價(jià)的,使用 else if 更加的優(yōu)雅。
好了,這一節(jié)就講完了。這一節(jié)里,我們學(xué)習(xí)了多分支條件語(yǔ)句。恭喜你, 你已掌握了最常見的分支語(yǔ)句技巧!再繼續(xù)學(xué)習(xí)下去,你會(huì)變得更強(qiáng)。
還有其它處理多分支語(yǔ)句的技巧嗎?
什么是循環(huán)語(yǔ)句?
什么是變量作用域?
請(qǐng)繼續(xù)關(guān)注我的課程,我將在后續(xù)課程中幫大家依次解答上述問題。
想學(xué)計(jì)算機(jī)技術(shù)嗎?需要1對(duì)1專業(yè)級(jí)導(dǎo)師指導(dǎo)嗎?想要團(tuán)隊(duì)陪你一起進(jìn)步嗎?歡迎加我為好友!
