更新時(shí)間:2020-10-14 17:05:03 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2877次
在一段代碼編程中,肯定會(huì)用到不同的語法結(jié)構(gòu),java中的語法結(jié)構(gòu)在整個(gè)程序中是十分重要的,像是一座建筑物的主框架一樣。switch語句是選擇語句中的一種,這篇文章總結(jié)了switch語句語法及原理的知識(shí),適合java零基礎(chǔ)的朋友們學(xué)習(xí)。
Switch語句和if語句一樣,都屬于選擇語句(分支語句)通過對(duì)給定的條件進(jìn)行判斷,從而決定執(zhí)行兩個(gè)或多個(gè)分支中的哪一支。因此,在編寫選擇語句之前,應(yīng)該首先明確判斷條件是什么,并確定當(dāng)判斷結(jié)果為“真”或“假”時(shí)應(yīng)分別執(zhí)行什么樣的操作/算法。
switch語句基本語法格式,具體如下:
switch (表達(dá)式){
????case 目標(biāo)值1:
????????執(zhí)行語句1
????????break;
????case 目標(biāo)值2:
????????執(zhí)行語句2
????????break;
????......
????case 目標(biāo)值n:
????????執(zhí)行語句n
????????break;
????default:
????????執(zhí)行語句n+1
????????break;
}
在上面的格式中,switch語句將表達(dá)式的值與每個(gè)case中的目標(biāo)值進(jìn)行匹配,如果找到了匹配的值,會(huì)執(zhí)行對(duì)應(yīng)case后的語句,如果沒找到任何匹配的值,就會(huì)執(zhí)行default后的語句。switch語句中的break關(guān)鍵字的作用是跳出switch語句。
需要注意的是,在switch語句中的表達(dá)式只能是byte、short、char、int類型的值,如果傳入其它類型的值,程序會(huì)報(bào)錯(cuò)。但上述說法并不嚴(yán)謹(jǐn),實(shí)際上在JDK5.0中引入的新特性enum枚舉也可以作為switch語句表達(dá)式的值,在JDK7.0中也引入了新特性,switch語句可以接收一個(gè)String類型的值。
switch語句原理是:
(1)拿switch語句中的值與第一個(gè)case中值比較的時(shí)候,如果相同,則執(zhí)行該分支中的java語句,然后遇到"break"語句,switch語句就結(jié)束了,如果第一個(gè)不相等,則繼續(xù)與后面的case值進(jìn)行比較。
(2)如果分支執(zhí)行了,但是分支最后沒有"break",此時(shí)會(huì)發(fā)生case穿透現(xiàn)象,也就是說下一個(gè)分支也不再進(jìn)行匹配,直接進(jìn)入下一個(gè)分支執(zhí)行,直到遇到"break"為止。
(3)所有的case都沒有匹配成功,那么最后default分支會(huì)執(zhí)行。
最后來看一個(gè)使用了switch語句語法及原理的代碼案例:
public class SwitchTest02{
????public static void main(String[] args){
????????java.util.Scanner s=new java.util.Scanner(System.in);
????????System.out.print("請(qǐng)輸入考生成績:");
????????double score=s.nextDouble();
????????if(score<0 || score>100){
????????????System.out.println("您輸入的學(xué)生成績不合法");
????????????return;
????????}
????????//grade的值可能是:0 1 2 3 4 5 6 7 8 9 10
????????//0-5不及格
????????//6 及格
????????//7 中
????????//8 良
????????//9 10 優(yōu)
????????int grade=(int)(score/10);
????????String str="不及格";
????????switch(grade){
????????case 10:case 9://case可以合并
????????????str="優(yōu)";
????????????break;
????????case 8:
????????????str="良";
????????????break;
????????case 7:
????????????str="中";
????????????break;
????????case 6:
????????????str="及格";
????????????break;
????????}
????????System.out.println("該學(xué)生成績等級(jí)為:"+str);
????}
}
Switch語句是常見也常用的一種選擇語句,所以這篇文章中對(duì)switch語句語法及原理的介紹,是java零基礎(chǔ)的朋友們必須要掌握的知識(shí),對(duì)switch的原理和語法結(jié)構(gòu)理解有更深入的理解和掌握,才能在實(shí)戰(zhàn)過程中自如的應(yīng)用switch語句。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743