12、分支語句 Switch 在JS宏中的運用

switch 語句用于基于不同的條件來執(zhí)行不同的動作。
Switch語句和? if else 非常相似。從本質(zhì)上來說他們并沒有區(qū)別。他們都是按不同的條件,在條件滿足時執(zhí)行不同的動作。
switch 語法:
switch(x){
case 1:? ? ?當(dāng)x==1時? 執(zhí)行語句?break;
case 2:????當(dāng)x==2時? 執(zhí)行語句?break;
case 3:????當(dāng)x==3時? 執(zhí)行語句?break;
case?4:????當(dāng)x==4時? 執(zhí)行語句?break;
....................
default:? ?如果x不是上面的任何值,將執(zhí)行這條語句。
}
事實上任何一個switch?都可以拆分為 if else??
使用switch 能讓我們的代碼更加,簡潔,整潔,易讀。
switch 括號中的值,可以是數(shù)字,字符串,字符、符號。
不同的數(shù)據(jù)類型我們在寫case 的時候?qū)懛ㄒ猜杂袇^(qū)別,數(shù)字可以直接表示。如果是字符,符號,字符串等。我們需要用 ""? 加引號表示。
case ?1:? ??? case 與 條件之間的空格不可省略。最后的英文 :? ?也不可省略。這是固定的語法格式。?
switch(值){? ?
case 1:
case "+":
case?"字":
case "字符串":
}???
switch 中的break:
首先break:
是一個關(guān)鍵字,一般我們會使用它來跳出當(dāng)前循環(huán),他在Switch語句中的作用是跳出當(dāng)前語句塊。
????如果在執(zhí)行完當(dāng)前滿足條件的case?語句時,沒有遇到break;關(guān)鍵字那么接下來,將繼續(xù)執(zhí)行下一個case?只到遇到break;才會跳出
如果我們寫了一個switch()語句如下:
var n=2;
switch(n){
case?1:Range("a1").Value2=1;
case 2:Range("a1").Value2=2;
case?3:Range("a1").Value2=3;
}
上面的語句
我們并沒有使用break;關(guān)鍵字。
那么我們最后執(zhí)行的結(jié)果是,在a1單元格中寫入了一個3,如果我們單步調(diào)適運行會發(fā)現(xiàn)。他在執(zhí)行時,首先執(zhí)行了滿足條件的case 2;后面接著執(zhí)行了case 3中的語句,因為沒有遇到 break,所以他不會跳出當(dāng)前的語句塊。
????所以我們在使用switch 時break;?是必須的。除非我們確實希望他執(zhí)行后面的每一個case 。
switch 中的default:
default:是備選語句。
在switch中,我們一般會寫多個條件,但我們不能把所有情況都表示進(jìn)去。
無法表示進(jìn)去的情況我們可以統(tǒng)一放到default 中來統(tǒng)一處理。
如下:
var age;
switch(age){
case?18:你好年輕人;break;
case?30:你好年輕人;break;
case?40:你好中年人;break;
case?50:你好中年人;break;
case?60:你好老年人;break;
default:你好你輸入的這個我無法判斷哦。
}
我們并不需要要,把每一個年齡斷都一一表示進(jìn)去。比上面的代碼。
本課小結(jié):
每一個siwtch語句,都能拆分為?if?else??
每一個case 的最后都應(yīng)寫上break;跳出語句。
我們一般會使用case 來做精準(zhǔn)判斷,而不是區(qū)間判斷。

視頻教程: