--- title: Switch case的介紹 description: 當你需要根據一個變數的值執行不同的程式碼塊時,switch case 是一個非常有用的語法。在 C 語言中,switch case 是一種控制流程語句,可以讓你編寫更清晰、更簡潔的程式。這份講義是「海聲創課社」的社團講義,歡迎有興趣的人使用。 tags: C, C語言, switch,case, break, Rduan, 海聲創客社,講義,簡報,迴圈控制 langs: zh-tw --- # Switch case的介紹 ###### tags: `C語言` `switch_case` `判斷式` `Rduan` ## switch-case 簡介 >當你需要根據一個變數的值執行不同的程式碼塊時,switch case 是一個非常有用的語法。在 C 語言中,switch case 是一種控制流程語句,可以讓你編寫更清晰、更簡潔的程式。 ## 結構 ```C switch (expression)//放入需要使用的變數 { case /* 情況(case) */://放入「當變數等於『某數』時」 /* 置入要執行的程式 */ break; default: break;//若所有的情況都不 } ``` --- ## 範例 ```C #include <stdio.h> int main() { int option; printf("請輸入一個數字 (1-3):\n"); scanf("%d", &option); switch (option) { case 1: printf("你選擇了 1\n"); break; case 2: printf("你選擇了 2\n"); break; case 3: printf("你選擇了 3\n"); break; default: printf("請輸入 1-3 之間的數字\n"); break; } return 0; } ``` ## 程式說明 這個程式提示用戶輸入一個數字,然後根據該數字執行不同的程式碼。在 switch 的括號中,我們指定了要檢查的變數,這裡是 option。然後在每個 case 分支中,我們定義了該變數等於什麼值時要執行的程式碼塊。 每個 case 後面都需要加上一個 break 關鍵字,這是為了讓程式在找到一個符合條件的 case 後停止執行 switch 語句。如果你不加 break,程式將繼續執行下去,直到找到一個 break 或者執行到 switch 語句的結尾。 最後一個 default 分支是可選的。如果變數的值不等於任何一個 case 中的值,程式就會執行 default 分支中的程式碼。在這個例子中,default 分支只是簡單地提示用戶重新輸入數字。 這就是一個基本的 switch case 程式。當你需要在 C 語言中根據變數的值執行不同的程式碼時,你可以使用 switch case 語句。 --- ## 對比 if else switch case對比if else來說最重要的其實是switch case 是針對「變數」做控制,但是if else是針對判斷是做流程控制 * 優點 1. 易於閱讀和編寫:當你有多個條件需要檢查時,使用 switch case 能夠讓程式碼更加簡潔和易於閱讀。相對於使用 if else 的情況,這種語法可以讓你的程式碼更具可讀性和可維護性。 2. 效率高: switch case 會產生一個跳轉表,它可以根據變數的值快速定位要執行的程式碼。這比使用 if else 時多個比較還要更加有效率。 3. 可以清楚地表達邏輯:當你需要根據一個變數的值執行不同的程式碼時,使用 switch case 可以更清晰地表達你的邏輯。 * 缺點 1. witch case 只能用於等於比較:switch case 只能用於對一個變數進行等於比較,無法使用其他比較運算符或者邏輯運算符。而 if else 則可以進行複雜的比較和邏輯運算。 2. 無法編寫較長的邏輯:switch case 通常用於簡單的判斷,當你需要編寫更複雜的邏輯時,可能需要使用 if else 或者其他控制流程語句。