TypeScript - Switch 语句:初学者指南

你好,未来的编码巨星!今天,我们将深入了解 TypeScript 中最实用的控制流结构之一:switch 语句。如果你之前从未写过一行代码,也不用担心——我会一步一步地引导你完成这次旅程,就像我过去几年里为数不清的学生所做的那样。所以,拿起你最喜欢的饮料,让我们开始吧!

TypeScript - Switch Statement

什么是 Switch 语句?

在我们深入了解细节之前,先来理解一下 switch 语句是什么,以及它为什么这么有用。想象你是一家餐厅的服务员。一位顾客走进来点了一道菜。根据他们点的菜,你需要去厨房的不同工作站。这正是编程中的 switch 语句所做的——它接收一个值,并根据这个值决定执行哪段代码。

语法:Switch 语句的配方

现在,让我们来看看 switch 语句的语法。把这想象成我们用来创建自己的 switch 语句的配方。

switch (expression) {
case value1:
// 要执行的代码
break;
case value2:
// 要执行的代码
break;
...
default:
// 如果没有匹配的 case,则执行这段代码
}

让我们分解一下:

  1. switch:这个关键字告诉 TypeScript 我们正在开始一个 switch 语句。
  2. (expression):这是我们正在检查的值。
  3. case value1::如果表达式匹配这个值,下面它的代码将会运行。
  4. break:这告诉 TypeScript 我们已经完成了这个 case,并退出 switch 语句。
  5. default:这就像 if-else 语句中的 "else"。如果没有其他 case 匹配,它将运行。

流程图:Switch 语句的道路图

为了可视化 switch 语句是如何工作的,让我们来看一个流程图:

+-------------+
|   开始     |
+-------------+
|
v
+-------------------+
| 评估表达式       |
+-------------------+
|
v
+---------------------+
| 它匹配 case 1 吗?  |
+---------------------+
|       |
是|     否|
|       |
v       v
+------------+  +---------------------+
|执行 case 1 | |它匹配 case 2 吗?   |
|代码块      |  +---------------------+
+------------+    |       |
|         是|     否|
|           |       |
|           v       v
|    +------------+  +-----------+
|    |执行 case 2 |  |  ...更多 |
|    |代码块      |  |   cases  |
|    +------------+  +-----------+
|           |              |
|           |              |
|           |              v
|           |        +-----------+
|           |        | 执行     |
|           |        | 默认     |
|           |        | 代码块  |
|           |        +-----------+
|           |              |
v           v              v
+-------------+
|    结束    |
+-------------+

这个流程图显示了 TypeScript 如何评估每个 case 并在找到匹配时执行相应的代码块。

示例:程序员的一天

让我们深入一个现实世界的例子。想象我们正在创建一个程序,它会根据星期几给出建议。以下是我们如何使用 switch 语句来实现这个功能:

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. 我们创建了一个 switch 语句来检查 day 的值。
  3. 对于每一天,我们设置了不同的建议。
  4. 注意周六和周日共享相同的建议——我们可以像这样堆叠 cases!
  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 语句的土地,从它们的基本语法到它们的内部工作原理,甚至是一些可能的陷阱。记住,switch 语句就像是你的代码中的交通控制器,根据不同的值来控制代码的流向。

在你继续编程冒险的过程中,你会发现 switch 语句是你编码工具箱中无价的工具。它们可以使你的代码更清洁、更高效,尤其是在处理多个条件时。

继续练习,保持好奇心,在你意识到之前,你将像专业人士一样轻松地切换代码!快乐编码,并记住——在编程的世界里,每一天都是切换事物和学习新东西的机会!

Credits: Image by storyset