TypeScript - 選擇語句:初學者指南

你好啊,未來的編程超新星!今天,我們將深入探討 TypeScript 中最有用的控制流程結構之一:選擇語句(switch statement)。別擔心如果你之前從未寫過一行代碼——我會一步一步地引導你,就像我這些年來對無數學生所做的那樣。所以,拿起你喜歡的飲料,我們開始吧!

TypeScript - Switch Statement

選擇語句是什麼?

在我們深入細節之前,讓我們先了解選擇語句是什麼,以及它為什麼如此有用。想像你是一家餐廳的服務員。一位顧客進來點了一道菜。根據他點的菜,你需要去廚房不同的工作站。這正是編程中選擇語句的作用——它根據一個值來決定執行哪段代碼。

語法:選擇語句的配方

現在,讓我們來看看選擇語句的語法。把這當作我們將遵循來創建我們自己的選擇語句的配方。

switch (expression) {
case value1:
// 要執行的代碼
break;
case value2:
// 要執行的代碼
break;
...
default:
// 如果沒有匹配的case,則執行的代碼
}

讓我們分解一下:

  1. switch:這個關鍵字告訴 TypeScript 我們正在開始一個選擇語句。
  2. (expression):這是我們正在檢查的值。
  3. case value1::如果表達式匹配這個值,下面 的代碼將會運行。
  4. break:這告訴 TypeScript 我們已完成這個case,並退出選擇語句。
  5. default:這就像 if-else 語句中的 "else"。如果沒有其他case匹配,它會運行。

流程圖:選擇語句的路線圖

為了直觀地了解選擇語句是如何工作的,讓我們來看看一個流程圖:

+-------------+
|   開始     |
+-------------+
|
v
+-------------------+
| 檢查表達式       |
+-------------------+
|
v
+---------------------+
| 第一個case匹配嗎?|
+---------------------+
|       |
是|     否|
|       |
v       v
+------------+  +---------------------+
|執行第一個| |第二個case匹配嗎? |
|case代碼块|  +---------------------+
+------------+    |       |
|         是|     否|
|           |       |
|           v       v
|    +------------+  +-----------+
|    |執行第二個|  |  ...更多 |
|    |case代碼块|  |   case   |
|    +------------+  +-----------+
|           |              |
|           |              |
|           |              v
|           |        +-----------+
|           |        | 執行默認 |
|           |        | 代碼块   |
|           |        +-----------+
|           |              |
v           v              v
+-------------+
|    結束      |
+-------------+

這個流程圖展示了 TypeScript 如何評估每個 case 並在找到匹配時執行相應的代碼塊。

示例:程序員的一天

讓我們來看一個真實世界的例子。想像我們正在創建一個根據星期幾給建議的程序。以下是如何使用選擇語句:

let day: string = "Monday";
let advice: string;

switch (day) {
case "Monday":
advice = "開始你強大的週!";
break;
case "Tuesday":
advice = "保持動力!";
break;
case "Wednesday":
advice = "你已完成一半!";
break;
case "Thursday":
advice = "在週五之前再推一把!";
break;
case "Friday":
advice = "TGIF!堅持到底!";
break;
case "Saturday":
case "Sunday":
advice = "享受你的週末!";
break;
default:
advice = "那不是有效的日子!";
}

console.log(advice);

在這個例子中:

  1. 我們聲明一個變量 day 並將它設為 "Monday"。
  2. 我們創建一個選擇語句來檢查 day 的值。
  3. 為每一天我們設置不同的建議。
  4. 注意周六和周日共享相同的建議——我們可以這樣堆疊 case!
  5. 如果有人輸入一個無效的日子,我們的默認 case 會捕獲它。

當我們運行這段代碼時,它會輸出:"開始你強大的週!"

break 語句的重要性

現在,你可能會想,"那些 break 語句是幹什麼的?" 好奇的朋友,讓我告訴你,當我們忘記包含它們時會發生什麼:

let fruit: string = "apple";
let response: string;

switch (fruit) {
case "apple":
response = "一天一個蘋果,醫生遠離我!";
case "banana":
response = "香蕉富含鉀!";
case "orange":
response = "橙子富含維生素C!";
default:
response = "我不太瞭解那種水果。";
}

console.log(response);

你能猜出這段代碼會輸出什麼嗎?如果你猜的是 "我不太瞭解那種水果。",那麼你答對了!但為什麼呢?

沒有 break 語句,TypeScript 會繼續為所有其餘的 case 執行代碼,這種行為被稱為 "fall-through"(穿透)。在我們的例子中,它匹配 "apple",但然後繼續通過所有其他 case,最終達到默認 case。

這種行為在某些情況下可能很有用,但通常不是我們想要的。這就是為什麼記住你的 break 語句是如此重要!

結論:在代碼中切換

好了,我的 TypeScript 初學者們!我們已經穿越了選擇語句的土地,從它們的基本語法到它們的內部工作原理,甚至還有潛在的陷阱。記住,選擇語句就像是代碼的交通控制器,根據不同的值來指導流程。

在你們的編程冒險中,你會發現選擇語句是工具箱中無價的工具。它們可以使你的代碼更乾淨、更高效,尤其是在處理多個條件時。

繼續練習,保持好奇心,在你成為專家的路上,你會發現自己能夠像專業人士一樣切換代碼!快樂編程,並記住——在編程的世界裡,每一天都是學習新事物的機會!

方法 描述
switch 開始一個選擇語句
case 在選擇語句中定義一個 case
break 在匹配 case 後退出選擇語句
default 如果沒有其他 case 匹配,則定義默認 case

Credits: Image by storyset