JavaScript中Switch语句的使⽤⽅法
除了if ... else之外,JavaScript还有⼀个称为switch语句的功能。 switch是⼀种条件语句,它将针对多种可能的情况评估表达式,并根据匹配的情况执⾏⼀个或多个代码块。 switch语句与包含许多其他if块的条件语句密切相关,并且它们通常可以互换使⽤。
在本教程中,我们将学习如何使⽤switch语句,以及如何使⽤相关的关键字case,break和default。 最后,我们将介绍如何在switch语句中使⽤多个case。
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块继续评估语句。
// 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 ");
}
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要求后突破语句。
// 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
switch语句表示范围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语句。
想要了解更多相关知识,可访问 !!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论