/*
* 條件分支語(yǔ)句也叫switch語(yǔ)句
*/
/*
* 題:
* 根據(jù)num值,輸出對(duì)應(yīng)的中文
*/
var num = 2;
/*
* 從題目來(lái)看的話,第一個(gè)想法是使用if判斷,也就是下面的寫(xiě)法
*/
// if (num == 1) {
// alert("壹");
// } else if (num == 2) {
// alert("貳");
// }else if (num == 3) {
// alert("叁");
// }
/*
* 這樣也是沒(méi)問(wèn)題的,可是,每次都要寫(xiě)num著實(shí)有點(diǎn)累,如果num的是任何數(shù)的話,
* 那么這個(gè)if判斷就會(huì)需要寫(xiě)很多,代碼量也很大,程序的運(yùn)行負(fù)擔(dān)就會(huì)過(guò)重。
* 不過(guò),js中有一個(gè)更好的方式,那就是條件分支語(yǔ)句,也就是switch().
* switch的結(jié)構(gòu)和使用方法,在下面會(huì)寫(xiě)到。
* 結(jié)構(gòu):
* switch ( 條件表達(dá)式){
* case 表達(dá)式:
* break;
* case 表達(dá)式:
* break;
* ......
* default:
* break;
* }
* 注解:switch (){},switch后面小括號(hào)內(nèi)是寫(xiě)條件表達(dá)式,也就是 switch(條件表達(dá)式),
switch后面大括號(hào)內(nèi)是由case 和 default組成。
* case 后面空一格后緊跟著的是表達(dá)式,也就是 case 表達(dá)式:,注意:表達(dá)式后面的冒號(hào)
是必須要寫(xiě)的,不能忘記或不寫(xiě)。并且 case 表達(dá)式:可以單個(gè)出現(xiàn),也可以是多個(gè)一起出現(xiàn)
* default 后面是緊跟著冒號(hào),注意:后面的冒號(hào)是必須要寫(xiě)的,不能忘記或不寫(xiě)。
default只能單個(gè)出現(xiàn),或者不出現(xiàn),切記:不能多個(gè)一起出現(xiàn)
* 執(zhí)行順序:
* switch內(nèi)的case 執(zhí)行順序是從第一開(kāi)始,根據(jù)switch(條件表達(dá)式)的值來(lái)比較case 表達(dá)式:
的值,如果條件表達(dá)式與表達(dá)式的值是全等,
* 那么就執(zhí)行case內(nèi)的代碼,代碼執(zhí)行完后執(zhí)行break并跳出switch語(yǔ)句。如果條件表達(dá)式
與表達(dá)式的值不是全等,那么就由上向下依次執(zhí)行到第二個(gè)case 表達(dá)式
* 最后說(shuō)一下 break是什么意思,這是意思結(jié)束語(yǔ)句的意思,也就是說(shuō) case 和 default執(zhí)行完
內(nèi)部代碼后直接跳出全等對(duì)比語(yǔ)句
*/
switch(num) {
case 1:
alert("壹");
break;
case 2:
alert("貳");
break;
default:
alert("不合法");
break;
}
/*
* 這樣只需要多個(gè)case 就行,這個(gè)switch內(nèi)的條件表達(dá)式的值,只能是數(shù)字,
因?yàn)閏ase 表達(dá)式是Number類型,
* 所以num函數(shù)指針也要是number,當(dāng)然num函數(shù)指針的值也可以是string類型或者其他類型,
如果是string類型或者其他類型那么switch內(nèi)唯一符合條件的只有default。
* 到這里會(huì)有個(gè)問(wèn)題那就如果 num 的是任何數(shù)的話,那switch中case會(huì)需要寫(xiě)N個(gè),這樣寫(xiě)的話代碼會(huì)
是無(wú)限長(zhǎng),而且比較的時(shí)間也是無(wú)限長(zhǎng),程序的運(yùn)行負(fù)擔(dān)也會(huì)無(wú)限的加重,
* 那該如何解決吶??
* 在JS基礎(chǔ)_switch練習(xí)中會(huì)講到一個(gè)解決方案!
*/

快給朕打賞