如何在 JavaScript 中使用 Switch 语句

2023-11-08

介绍

条件语句是所有编程语言中最有用和最常见的功能之一。如何在 JavaScript 中编写条件语句描述了如何使用if, else, and else if关键字根据不同的条件控制程序的流程,在 JavaScript 中通常是用户输入的结果。

此外if...else, JavaScript 有一个称为switch陈述。switch是一种条件语句,它将针对多种可能的情况评估表达式,并根据匹配的情况执行一个或多个代码块。这switch语句与包含许多内容的条件语句密切相关else if块,并且它们通常可以互换使用。

在本教程中,我们将学习如何使用switch声明,以及如何使用相关关键字case, break, and default。最后,我们将介绍如何在一个应用程序中使用多个案例switch陈述。

Switch

The switch语句计算表达式并执行代码作为匹配案例的结果。基本语法类似于if陈述。它总是会写成switch () {},其中括号包含要测试的表达式,大括号包含要执行的潜在代码。

下面是一个示例switch声明有两个case声明和后备称为default.

switch (expression) {
	case x:
		// execute case x code block
		break;
	case y:
		// execute case y code block
		break;
	default:
		// execute default code block
}

按照上面代码块的逻辑,将发生的事件顺序如下:

  • 表达式被求值。
  • 首先case, x,将针对表达式进行测试。如果匹配,则代码将执行,并且break关键字将结束switch block.
  • 如果不匹配,x将被跳过并且ycase 将根据表达式进行测试。如果y匹配表达式,代码将执行并退出switch block.
  • 如果没有任何情况匹配,则default代码块将运行。

让我们做一个工作示例switch遵循上述语法的语句。在此代码块中,我们将使用以下命令查找当前星期几new Date()方法,以及getDay()打印对应于当天的数字。0代表周日,一直到6代表星期六。我们将从设置变量开始。

const day = new Date().getDay();

Using switch,我们将在一周中的每一天向控制台发送一条消息。该程序将按照从上到下的顺序运行,寻找匹配项,一旦找到匹配项,break命令将停止switch阻止继续评估语句。

week.js
// Set the current day of the week to a variable, with 0 being Sunday and 6 being Saturday
const day = new Date().getDay();

switch (day) {
	case 0:
		console.log("It's Sunday, time to relax!");
		break;
	case 1:
		console.log("Happy Monday!");
		break;
	case 2:
		console.log("It's Tuesday. You got this!");
		break;
	case 3:
		console.log("Hump day already!");
		break;
	case 4:
		console.log("Just one more day 'til the weekend!");
		break;
	case 5:
		console.log("Happy Friday!");
		break;
	case 6:
		console.log("Have a wonderful Saturday!");
		break;
	default:
		console.log("Something went horribly wrong...");
}
Output
'Just one more day 'til the weekend!'

这段代码是在周四测试的,对应的是4,因此控制台输出是Just one more day 'til the weekend!。根据您在一周中的哪一天测试代码,您的输出将会有所不同。我们已经包括了default阻止在最后运行,以防出现错误,在这种情况下,这种情况不应该发生,因为一周只有 7 天。例如,我们也可以只打印周一到周五的结果,并且default布洛克可能会在周末传达同样的信息。

如果我们省略了break每个语句中都包含关键字,其他语句中都没有关键字case语句将被评估为 true,但程序将继续检查直到到达末尾。为了使我们的程序更快、更高效,我们包括break.

开关范围

有时您可能需要评估一个值的范围switch块,而不是上面示例中的单个值。我们可以通过将表达式设置为来做到这一点true并在每个内进行操作case陈述。

为了使这一点更容易理解,我们将使用一个熟悉的示例。在里面条件语句在教程中,我们制作了一个评分应用程序,它将获取数字分数并将其转换为字母分数,并满足以下要求。

  • 90级及以上为A
  • 80到89的等级是B
  • 70 至 79 级是C
  • 60 至 69 级是D
  • 59级或以下为F

现在我们可以把它写成switch陈述。由于我们正在检查一个范围,因此我们将在每个范围内执行操作case检查每个表达式的计算结果是否为true一旦满足要求,就中断该语句true已经很满意了。

成绩.js
// Set the student's grade
const grade = 87;

switch (true) {
	// If score is 90 or greater
	case grade >= 90:
		console.log("A");
		break;
	// If score is 80 or greater
	case grade >= 80:
		console.log("B");
		break;
	// If score is 70 or greater
	case grade >= 70:
		console.log("C");
		break;
	// If score is 60 or greater
	case grade >= 60:
		console.log("D");
		break;
	// Anything 59 or below is failing
	default:
		console.log("F");
}
Output
'B'

要计算的括号中的表达式是true在这个例子中。这意味着任何case其评估结果为true将是一场比赛。

就像与else if, switch从上到下进行评估,第一个真正匹配的将被接受。因此,即使我们的grade变量是87因此评估为true对于 C 和 D,第一个匹配项是 B,这将是输出。

多个案例

您可能会遇到多种情况应具有相同输出的代码。为了实现这一点,您可以使用多个case对于每个代码块。

为了测试这一点,我们将制作一个小应用程序,将当前月份与适当的季节相匹配。首先,我们将使用new Date()方法查找与当前月份相对应的数字,并将其应用于month多变的。

const month = new Date().getMonth();

The new Date().getMonth()方法将输出一个数字0 to 11, with 0一月和11是十二月。在本出版物发布时,月份是 9 月,对应于8.

为了简单起见,我们的应用程序将输出四个季节,并具有以下规格:

  • Winter: 一月、二月和三月
  • Spring:四月、五月和六月
  • Summer: 七月、八月和九月
  • Autumn: 十月、十一月和十二月

下面是我们的代码。

季节.js

// Get number corresponding to the current month, with 0 being January and 11 being December
const month = new Date().getMonth();

switch (month) {
	// January, February, March
	case 0:
	case 1:
	case 2:
		console.log("Winter");
		break;
	// April, May, June
	case 3:
	case 4:
	case 5:
		console.log("Spring");
		break;
	// July, August, September
	case 6:
	case 7:
	case 8:
		console.log("Summer");
		break;
	// October, November, December
	case 9:
	case 10:
	case 11:
		console.log("Autumn");
		break;
	default:
		console.log("Something went wrong.");
}

当我们运行代码时,我们将收到根据上述规范识别当前季节的输出。

Output
Summer

发布时的当前月份是8,对应于其中之一case声明与"Summer"季节产量。

结论

在这篇文章中,我们回顾了switch声明,一种类型条件语句它评估表达式并根据匹配结果输出不同的值。我们回顾了switch使用范围和多个的语句case声明。

要了解更多信息switch,您可以在Mozilla 开发者网络.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JavaScript 中使用 Switch 语句 的相关文章

随机推荐

  • 如何创建 MySQL 用户帐户并授予权限

    MySQL 是最流行的开源关系数据库管理系统 MySQL服务器允许我们创建大量的用户帐户并授予适当的权限 以便用户可以访问和管理数据库 本教程介绍如何创建 MySQL 用户帐户并授予权限 在你开始之前 我们假设您的系统上已经安装了 MySQ
  • 如何在 Debian 10 上安装 PostgreSQL

    PostgreSQL 通常简称为 Postgres 是一个开源通用对象关系数据库管理系统 它具有在线备份 时间点恢复 嵌套事务 SQL和JSON查询 多版本并发控制 MVCC 异步复制等许多强大的功能 本教程将引导您完成在 Debian 1
  • 如何在 Ubuntu 18.04 上安装和使用 Docker

    Docker 是一种容器化技术 可让您快速构建 测试应用程序并将其部署为几乎可以在任何地方运行的可移植 自给自足的容器 Docker 已经成为容器部署事实上的标准 它是 DevOps 工程师及其持续集成和交付管道的必备工具 在本教程中 我们
  • 如何在 CentOS 8 上安装和使用 Curl

    curl是一个功能强大的命令行工具 用于从远程服务器传输数据或向远程服务器传输数据 和curl您可以使用各种网络协议下载或上传数据 例如HTTP HTTPS SCP SFTP and FTP 如果您收到一条错误消息说curl command
  • 如何在 CentOS 7 上使用 Apache 安装和配置 Nextcloud

    下一云是一个开源 自托管的文件共享和协作平台 类似于 Dropbox 它捆绑了媒体播放器 日历和联系人管理 Nextcloud 可通过应用程序进行扩展 并拥有适用于所有主要平台的桌面和移动客户端 本教程将引导您完成在 CentOS 7 系统
  • Linux ifconfig 命令

    ifconfig 界面配置 是一个网络管理工具 它用于配置和查看Linux操作系统中网络接口的状态 和ifconfig 您可以分配 IP 地址 启用或禁用接口 管理 ARP 缓存 路由等 在本文中 我们将探讨如何使用ifconfig命令 如
  • Linux 中的差异命令

    diff是一个命令行实用程序 允许您逐行比较两个文件 它还可以比较目录的内容 The diff命令最常用于创建包含一个或多个文件之间差异的补丁 可以使用patch命令 如何使用diff命令 语法为diff命令如下 diff OPTION F
  • Bash 退出命令和退出代码

    通常 在编写 Bash 脚本时 您需要在满足特定条件时终止脚本或根据命令的退出代码采取操作 在本文中 我们将介绍 Bashexit内置命令和已执行命令的退出状态 退出状态 每个 shell 命令在成功或失败终止时都会返回退出代码 按照约定
  • 如何在 Vim / Vi 中搜索

    本文介绍如何在 Vim Vi 中执行搜索操作 Vim 或其前身 Vi 预装在 macOS 和大多数 Linux 发行版上 搜索文本是处理文件时最常见的任务之一 当您遇到您最喜欢的编辑器不可用的情况时 了解 Vim 的基础知识可能会非常有用
  • 如何在 Ubuntu 22.04 上安装 Tomcat 10

    本文介绍如何在 Ubuntu 22 04 上安装和配置 Tomcat 10 Apache Tomcat 是一个开源 Web 服务器和 Java Servlet 容器 它是构建基于 Java 的网站和应用程序的最流行的选择之一 Tomcat
  • 如何在 Debian 10 Linux 上更改主机名

    本教程介绍如何在 Debian 10 Buster 上更改主机名而不重新启动系统 主机名是在安装 Debian 操作系统时设置的 或者如果您正在启动虚拟机 则主机名会在启动时动态分配给实例 先决条件 为了能够更改系统主机名 您需要以 roo
  • 如何在 Debian 10 Linux 上安装 Java

    在本教程中 我们将解释如何在 Debian 10 Linux 上安装 Java OpenJDK Java 是最流行的编程语言之一 用于构建不同类型的应用程序和系统 用 Java 开发的应用程序具有可扩展性 灵活性和可维护性 在你开始之前 J
  • 如何在 Ubuntu 18.04 上安装 PyCharm

    PyCharm是一个功能齐全的 IDEPython和网络开发 它具有内置的调试支持 Docker and Vagrant支持 嵌入式Git控制 Anaconda支持 语法高亮 代码完成 ssh终端 代码重构和丰富的导航功能 PyCharm
  • Linux 中的 apt 命令

    apt是一个命令行实用程序 用于在 Ubuntu Debian 和相关 Linux 发行版上安装 更新 删除和以其他方式管理 deb 软件包 它结合了最常用的命令apt get and apt cache某些选项的默认值不同的工具 apt专
  • 如何在 Debian 10 上安装 CouchDB

    Apache CouchDB 是由 Apache 软件基金会开发的免费开源 NoSQL 数据库 它可以用作单节点或集群数据库 CouchDB 服务器将其数据存储在命名数据库中 其中包含具有以下内容的文档JSON结构 每个文档由许多字段和附件
  • ​如何将 Debian 9 Stretch 升级到 Debian 10 Buster

    经过两年多的开发 新的 Debian 稳定版本 代号 Buster 的 Debian 10 于 2019 年 7 月 6 日发布 并将支持 5 年 此版本附带了大量新软件包和主要软件升级 Debian 10 buster 附带 Linux
  • 如何在 CentOS 8 上安装 GCC(开发工具)

    GNU 编译器集合 GCC 是 C C Objective C Fortran Ada Go D 编程语言 很多开源项目 包括Linux内核和GNU工具 都是使用GCC编译的 本文介绍如何在 CentOS 8 上安装 GCC 在 CentO
  • 你应该知道的 Nginx 命令

    Nginx 发音为 engine x 是一个免费 开源 高性能的 HTTP 和反向代理服务器 负责处理互联网上一些最大网站的负载 它可以用作独立的 Web 服务器 也可以用作反向代理适用于 Apache 和其他 Web 服务器 如果您是开发
  • 如何在 Linux 中挂载和卸载文件系统

    在 Linux 和 UNIX 操作系统上 您可以使用mount用于在目录树中的特定安装点附加 安装 文件系统和可移动设备 例如 USB 闪存驱动器 的命令 The umount命令从目录树中分离 卸载 已安装的文件系统 在本教程中 我们将介
  • 如何在 JavaScript 中使用 Switch 语句

    介绍 条件语句是所有编程语言中最有用和最常见的功能之一 如何在 JavaScript 中编写条件语句描述了如何使用if else and else if关键字根据不同的条件控制程序的流程 在 JavaScript 中通常是用户输入的结果 此