Java Switch語句和默認情況

Java Switch語句是流控制語句之一,它讓程序有能力根據一個或多個選項執行不同的代碼塊。默認情況是在所有選項都無法匹配時所執行的代碼塊。Switch語句可以讓程序執行多個路線中的一條,這些路線被稱為case。Switch語句可以在多個case中使用默認情況。

一、Switch語句的基本用法

Switch語句是根據變量或表達式的值執行不同的代碼塊。Switch語句包含一個switch關鍵字,後跟括號()中的變量或表達式。跟在這個括號後面是一系列的case語句,每一個case後面是一個或多個語句需要執行。在所有的case語句都執行完成後,程序繼續往下執行剩下的代碼。

switch(expression) {
    case value1:
        // 在expression與value1匹配時執行的代碼
        break; // 可選的
    case value2:
        // 在expression與value2匹配時執行的代碼
        break; // 可選的
    // 你可以在這裡添加更多的case語句
    default: 
        // 默認情況下要執行的代碼
}

在上面的代碼中,expression是需要檢查的變量或表達式。如果expression的值與value1匹配,那麼程序將跳轉到value1的代碼塊中執行,以此類推。如果沒有一個匹配的值,程序將執行默認情況下的代碼塊。

二、Switch語句的邏輯行為

在上面的代碼示例中,每個case語句後面跟着一個break語句。這個break語句可以讓程序跳出整個switch語句塊,如果沒有break語句,程序將繼續執行下一組case語句的代碼,這種情況被稱為fall-through。下面的例子展示了fall-through:

int day = 4;
switch (day) {
    case 1:
        System.out.println("星期一");
    case 2:
        System.out.println("星期二");
    case 3:
        System.out.println("星期三");
    case 4:
        System.out.println("星期四");
    case 5:
        System.out.println("星期五");
    case 6:
        System.out.println("星期六");
    case 7:
        System.out.println("星期日");
}

當上面的代碼運行時,輸出是:

星期四
星期五
星期六
星期日

這是因為程序匹配了case 4,它跳過了break語句,然後運行了所有case之後的語句,這就是fall-through。

三、默認情況

當switch語句中所有的case語句都不能與expression匹配時,程序將代碼塊跳轉到default語句。default語句是可選的,但是通常用於處理不是很常見的情況,或者作為錯誤處理的最後一個手段。

int day = 10;
switch (day) {
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break;
    default:
        System.out.println("未知的天數");
}

在上面的代碼示例中,當day的值為10時,程序輸出「未知的天數」。

四、Switch語句的使用技巧

Switch語句可以用於很多不同的任務。下面是一些技巧,可以用於更加高效地使用Switch語句。

1. 字符串

在Java 7中,Switch語句通過字符串進行匹配。下面是一個簡單的例子:

String s = "red";
switch (s) {
    case "red":
        System.out.println("紅色");
        break;
    case "green":
        System.out.println("綠色");
        break;
    case "blue":
        System.out.println("藍色");
        break;
}

上面的代碼中,Switch語句使用字符串進行匹配,輸出結果為「紅色」。

2. 枚舉

Switch語句可以用於枚舉類型變量的匹配。下面是一個例子:

enum Day {
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
Day day = Day.Monday;
switch (day) {
  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;
}

上面的代碼中,Switch語句用來匹配枚舉類型變量Day。

3. 範圍匹配

Java 7中,Switch語句支持範圍匹配。下面是一個例子:

int score = 60;
switch (score) {
    case 90-100:
        System.out.println("A");
        break;
    case 80-89:
        System.out.println("B");
        break;
    case 70-79:
        System.out.println("C");
        break;
    case 60-69:
        System.out.println("D");
        break;
    default:
        System.out.println("E");
}

在上面的範圍匹配示例中,當score的值為60時,程序輸出「D」。

五、總結

Switch語句是使用多種類型匹配多個情況的一種流控制語句。通常,Switch語句可以使代碼更清晰,易於維護,並減少代碼量。在使用Switch語句時,需要記住一些技巧,例如為每個case添加break,避免fall-through,還可以通過使用字符串、枚舉類型、範圍匹配提高程序的效率。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/184546.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 17:24
下一篇 2024-11-25 17:24

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論