switch 多分支語句,及其流程圖,和if的對比和運行機制

switch : 在編程中常見的問題就是檢測一個變量是否符合某個條件,如果條件不符合,再用另一個值來檢測,以此類推.當然也可以用if語句來完成也可以,如輸入月份判斷一年的季節,代碼如下:
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("冬季");
    }
}

這個程序顯得比較笨重,而且要是我要對單一月份進行特殊的輸出的時候,就會改掉一塊if語句,像這種要實現"多選一"的情況就應該用switch語句來進行判斷,代碼如下:
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("輸入的月份不符合規則!");
}
}

如此,我要對三月進行一個特殊的輸出,我只要在它,對應的 case 後面加上我的改動就可以了,這裏注意 break 的用法! 在switch 結構中不是每一個 case後面都要跟break 的,
這裏我先來說一說 switch的運行機制: 將整個switch結構看成是一個博物館 我們的現在手上的 Luna 這個變量就是我們的門票,我們要通過門票進入我們我們對應的房間,然後一間一間的去遊覽我們的展廳,
break 相當於展覽館的保安,你碰到保安代表後面的門票你並沒有購買,然後你就要被保安請出去了,要是你的門票並沒有找到對應的展館,你就會進入一個 特殊的展館 default ; 如圖

注意,switch 語句的中表達式的的值必須是整形,字符型,字符串型,或常量型 1 ~ n 必須也是整形,字符型或字符串型. default 語句爲可選的,如果它不存在,且 switch 語句中表達式的值不予任何 case 的常量值相同,switch 則不做任何處理!

switch 的 流程圖:

                                              

作者:唐平

時間:2018.4.19



發佈了41 篇原創文章 · 獲贊 74 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章