switch 多分支語句,及其流程圖,和if的對比和執行機制
阿新 • • 發佈:2019-01-01
switch : 在程式設計中常見的問題就是檢測一個變數是否符合某個條件,如果條件不符合,再用另一個值來檢測,以此類推.當然也可以用if語句來完成也可以,如輸入月份判斷一年的季節,程式碼如下:
注意,switch 語句的中表達式的的值必須是整形,字元型,字串型,或常量型 1 ~ n 必須也是整形,字元型或字串型. default 語句為可選的,如果它不存在,且 switch 語句中表達式的值不予任何 case 的常量值相同,switch 則不做任何處理!switch 的 流程圖:
這個程式顯得比較笨重,而且要是我要對單一月份進行特殊的輸出的時候,就會改掉一塊if語句,像這種要實現"多選一"的情況就應該用switch語句來進行判斷,程式碼如下:public static void main(String[] args) { System.out.println("請輸入一個月份:"); Scanner scanner = new Scanner(System.in); int luna = scanner.nextInt(); if(luna==3||luna==4||luna==5){ System.out.println("春季"); } if(luna==6||luna==7||luna==8){ System.out.println("夏季"); } if(luna==9||luna==10||luna==11){ System.out.println("秋季"); } if(luna==12||luna==1||luna==2){ System.out.println("冬季"); } }
如此,我要對三月進行一個特殊的輸出,我只要在它,對應的 case 後面加上我的改動就可以了,這裡注意 break 的用法! 在switch 結構中不是每一個 case後面都要跟break 的,這裡我先來說一說 switch的執行機制: 將整個switch結構看成是一個博物館 我們的現在手上的 Luna 這個變數就是我們的門票,我們要通過門票進入我們我們對應的房間,然後一間一間的去遊覽我們的展廳,break 相當於展覽館的保安,你碰到保安代表後面的門票你並沒有購買,然後你就要被保安請出去了,要是你的門票並沒有找到對應的展館,你就會進入一個 特殊的展館 default ; 如圖public static void main(String[] args) { System.out.println("請輸入一個月份:"); Scanner scanner = new Scanner(System.in); int luna = scanner.nextInt(); switch(luna){ case 3 : case 4 : case 5 : System.out.println("春季"); break; case 6 : System.out.println("春季的開頭"); case 7 : case 8 : System.out.println("夏季"); break; case 9 : case 10 : case 11 : System.out.println("秋季"); break; case 12 : case 1 : case 2 : System.out.println("冬季"); break; default: System.out.println("輸入的月份不符合規則!"); } }
注意,switch 語句的中表達式的的值必須是整形,字元型,字串型,或常量型 1 ~ n 必須也是整形,字元型或字串型. default 語句為可選的,如果它不存在,且 switch 語句中表達式的值不予任何 case 的常量值相同,switch 則不做任何處理!switch 的 流程圖:
作者:唐平
時間:2018.4.19