详解JavaScript中Switch语句的用途
在本教程中,我们将学习怎样使用switch语句,乃至怎样使用相关的关键字case,break和default。 最后,我们将介绍怎样在switch语句中使用多个case。
【相关课程引荐:JavaScript视频教程】
Switch
switch语句运算表达式并作为匹配大小写的结果施行代码。 起初它看起来有点令人生畏,但根本语法相似于if语句。 它将始终使用switch(){}编写,括号中包括要测试的表达式,乃至包括要施行的潜在代码的花括号。
下面是一个带有两个case语句的switch语句和一个称为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块。
假如它不匹配,x将跳过,y并将针对表达式测试案例。假如y匹配表达式,代码将施行并退出switch块。
假如所有状况都不匹配,则default代码块将运转。
让我们依照上面的语法制作一个switch语句的工作示例。 在此代码块中,我们将使用新的Date()办法寻到一周中的当前日期,并使用getDay()来打印与当天相对应的数字。 1代表星期一,不断代表7代表星期日。 我们将从设定变量开端。
const day = new Date().getDay();
使用switch,我们将在一周中的每一天向操纵台发送新闻。程序将按从上到下的次序运转以查寻匹配项,一旦寻到一个,该break命令将休止该switch块连续评估语句。
week.js
// Set the current day of the week to a variable, with 1 being Monday and 7 being Sunday const day = new Date().getDay(); switch (day) { 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; case 7: console.log("It's Sunday, time to relax!"); 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 Ranges
在某种状况下,您需要评估switch块中的一系列值,而不是像上面示例中的单个值。 我们可以通过将表达式设定为true并在每个case语句中施行操纵来完成此操纵。
为了使这更容易懂得,我们制作了一个简便的评分利用程序,它将获得一个数字分数并将其转换为字母等级,具有以下要求。
● 等级90及以上是A
● 等级80到89是B
● 等级70到79是C
● 等级60到69是D
● 等级59或以下是F
此刻我们可以将其写为switch语句。 由于我们正在检查范畴,因此我们将在每种状况下施行操纵以检查每个表达式可否正在评估为true,然后在知足true要求后冲破语句。
grades.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。 这意味着任何评估为true的状况都是匹配的。
就像使用else一样,switch从上到下停止评估,并接受第一个真正的匹配。 因此,即便我们的等级变量为87,因此关于C和D也评估为真,第一个匹配是B,它将是输出。
Multiple Cases
您大概会碰到多个case应具有雷同输出的代码。 为了实现这一点,您可认为每个代码块使用多个case。
为了测试这个,我们将制作一个小的利用程序,将当前月份与恰当的季节相匹配。 第一,我们将使用新的Date()办法查寻与当前月份对应的数字,并将其利用于月份变量。
为简便起见,我们的利用程序将输出具有以下规格的四季:
● 冬季:一月,二月和三月
● 春天:四月,五月和六月
● 夏日:七月,八月和九月
● 秋季:十月,十一月和十二月
以下是我们的代码。
seasons.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陈述相对应。
结论:
在本文中,我们回忆了switch语句,这是一种前提语句,用于评估表达式并按照匹配结果输出不一样的值。 我们使用范畴和多个case语句检查了switch语句。
本文来自 js教程 栏目,欢迎学习!
以上就是详解JavaScript中Switch语句的用途的具体内容,更多请关注百分百源码网其它相关文章!