/*
/*
* 在JS基礎(chǔ)_條件分支語句中結(jié)尾講到了一個(gè)問題,那就是如果 num 的是任何數(shù)的話,那switch
中case會(huì)需要寫N個(gè), 這樣寫的話代碼、條件比較的時(shí)間、運(yùn)行負(fù)擔(dān)會(huì)都會(huì)是無限長(zhǎng)和負(fù)擔(dān)
無限大,最終會(huì)導(dǎo)致程序卡頓甚至卡死或者閃退。
*
* 那該如何解決這個(gè)問題吶?下面會(huì)講到
*/
/*
* 題:
* 對(duì)于成績(jī)大于60分的輸出‘合格’,低于60分的輸出‘不合格’
*/
//第一步,先聲明一個(gè)變量,并賦值60或任意數(shù)字
// var score = 60;
var score = prompt("請(qǐng)輸入成績(jī):")
//為了方便測(cè)試,我把60改為
//第二步,創(chuàng)建switch,并添加條件表達(dá)式
// switch(score) {
// /*
// * case 60:這個(gè)是全等于score的值,但是,每次考試不可能都是60分,
// * 也有可能是60以下任何一個(gè)數(shù),也有可能是60以上任何一個(gè)數(shù),
// * 我們不可能把從0 ~ 100的數(shù)全寫出來,這顯然是不可行的,
// */
// case 60:
// alert("合格");
// break;
// }
// switch(score / 10) {
// /*
// * 為什么case 10:、case 9:、case 8:、case 7:沒有寫alert("合格");和break;?
// * 其實(shí)這樣寫也是可以執(zhí)行的,因?yàn)閏ase是從上向下執(zhí)行的,第一個(gè)沒有全等于score值,
// * 那他就會(huì)繼續(xù)向下全等比較,直到case全等于score才會(huì)結(jié)束并退出語句。
// *
// * 那這樣就可以了嗎?
// * 當(dāng)然不是的,這樣寫還是無法滿足score的值是任何數(shù)的寫法
// */
// case 10:
// case 9:
// case 8:
// case 7:
// case 6:
// alert("合格");
// break;
// default:
// alert("不合格")
// break;
// }
switch(true) {
case score >= 60:
alert("合格");
break;
default:
alert("不合格")
break;
}
/*
* 這樣寫的意思是當(dāng)case的表達(dá)式 score大于等于60時(shí)條件成立了那就等于true,與switch()表
達(dá)式的值也就是true全等,那么會(huì)執(zhí)行case內(nèi)語句。
* 如果case的表達(dá)式 score不能大于等于60時(shí)是等于false,那么case內(nèi)的語句不會(huì)執(zhí)行,
這時(shí)會(huì)繼續(xù)執(zhí)行下一個(gè)case或者default
*
*/

快給朕打賞