switch (表達式) { case 1: 語句體1; break; case 2: 語句體2; break; ... default: 語句體n+1; break; }
執行流程:
-
首先計算出表達式的值
-
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結 束。
-
最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。
/* 需求:鍵盤錄入星期數,顯示今天的減肥活動 周一:跑步 周二:游泳 周三:慢走 周四:動感單車 周五:拳擊 周六:爬山 周日:好好吃一頓 */ public static void main(String[] args){ // 1. 鍵盤錄入星期數據,使用變量接收 Scanner sc = new Scanner(System.in); System.out.println("請輸入"); int week = sc.nextInt(); // 2. 多情況判斷,采用switch語句實現 switch(week){ // 3. 在不同的case中,輸出對應的減肥計划 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("您的輸入有誤"); break; } } }
-
概述 : 如果switch語句中,case省略了break語句, 就會開始case穿透
-
需求 : 鍵盤錄入星期數,輸出工作日、休息日 (1-5)工作日,(6-7)休息日
-
示例代碼:
/* case穿透是如何產生的? 如果switch語句中,case省略了break語句, 就會開始case穿透. 現象: 當開始case穿透,后續的case就不會具有匹配效果,內部的語句都會執行,直到看見break,或者將整體switch語句執行完畢,才會結束。 */ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("請輸入星期數:"); int week = sc.nextInt(); switch(week){ case 1: case 2: case 3: case 4: case 5: System.out.println("工作日"); break; case 6: case 7: System.out.println("休息日"); break; default: System.out.println("您的輸入有誤"); break; } } }
