038 01 Android 零基礎入門 01 Java基礎語法 04 Java流程控制之選擇結構 05 案例演示switch結構-星期的表示案例以及總結
阿新 • • 發佈:2020-09-16
038 01 Android 零基礎入門 01 Java基礎語法 04 Java流程控制之選擇結構 05 案例演示switch結構-星期的表示案例以及總結
本文知識點:案例演示switch結構並對switch結構進行總結
案例演示switch結構
程式程式碼:
下圖中的程式碼沒有格式縮排,如何解決?
在eclipse的程式碼編輯區,右擊,source→format
程式碼就完成格式縮進了,看起來清爽很多
執行程式,會發現有問題:
發現輸入4,包括週四之後的所有語句都輸出了。
原因何在?
答案很簡單,沒有新增break語句。
那解決辦法也很簡單,在case4的輸出語句後新增上break,再測試,輸入4,此時發現,程式只輸出了週四,之後就結束了,再沒有輸出其他case4之後的語句。break的作用就在於此。
所以,我們該給每個case之後都新增上break語句。
public static void main(String[] args) { System.out.println("請輸入數字1-7,表示週一到周天"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); switch (n) { case 1: System.out.println("週一"); break; case 2: System.out.println("週二"); break; case 3: System.out.println("週三"); break; case 4: System.out.println("週四"); break; case 5: System.out.println("週五"); break; case 6: System.out.println("週六"); break; case 7: System.out.println("周天主日,分別為聖的日子,敬拜上帝"); break; default: System.out.println("輸入的資料超出了1-7的範圍!"); } }
程式執行結果沒有問題。
如果輸入的不是整型會如何?
如果輸入的資料不是要求的整型(n初始化的時候是int型別),則產生輸入不匹配異常:InputMismatchException
改寫程式——不用整數匹配,而改用字串進行switch表示式與case常量的匹配
改寫程式的程式碼及其執行結果:
public static void main(String[] args) { System.out.println("請輸入表示星期的英文單詞,表示週一到周天"); Scanner sc = new Scanner(System.in); String week = sc.next(); switch (week) { case "MONDAY": System.out.println("週一"); break; case "TUESDAY": System.out.println("週二"); break; case "WEDNESDAY": System.out.println("週三"); break; case "THURSDAY": System.out.println("週四"); break; case "FRIDAY": System.out.println("週五"); break; case "SATURDAY": System.out.println("週六"); break; case "SUNDAY": System.out.println("周天主日,分別為聖的日子,敬拜上帝"); break; default: System.out.println("單詞輸入錯誤!"); } }
注意:字串型別的匹配注意要區分大小寫
單詞全部大寫輸入正確無誤後,程式執行結果無誤。
如何隨便輸入,都能保證是大寫?
新增一行程式碼:
week = week.toUpperCase(); //把字串中的字元全部改為大寫
新增這行程式碼後,執行程式,發現即使輸入小寫,也完全沒有問題
插一句,改為大寫字母的程式碼為什麼可以這樣寫?
String week = sc.next();
week = week.toUpperCase(); //把字串中的字元全部改為大寫
因為String 本身是類,week是類物件,物件通過物件名.方法名的形式呼叫方法。
這一點,目前不必深究,後面學到面向物件會詳細講解。