问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

switch语句的用法?

发布网友 发布时间:2022-04-18 01:12

我来回答

8个回答

懂视网 时间:2022-04-18 05:34

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

在本教程中,我们将学习如何使用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教程 栏目,欢迎学习!

热心网友 时间:2022-04-18 02:42

语法:
switch(val)
{
case x:
//程序段1
break;
case y:
//程序段2
break;
case z:
//程序段3
break;
default:
//程序段4
}
首先,程序会用val的值与 x,y,z的值进行比较,如果等于其中某一个值,则程序跳转至该case执行程序,执行完后退出switch语句。例如等于x,则程序跳转到程序段2,然后退出switch。如果所有的case值都不相等,则执行default中的程序,例如上面的程序段4.
说明1:val的值应该为整数,case语句的个数可以很多,上面的x,y,z的值也是由你设定,但一定是一个常量
说明2:case语句里边的break别忘了,否则执行完该程序段后,会继续往下执行

热心网友 时间:2022-04-18 04:00

C语言提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.使用switch语句直接处理多个分支(当然包括两个分支).其一般形式为:
引用
switch(表达式)
{
case 常量表达式1:
语句1;
break;

case 常量表达式2:
语句2;
break;

……
case 常量表达式n:
语句n;
break;

default:
语句n+1;
break;
}

switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句.如下程序,可以根据输入的考试成绩的等级,输出百分制分数段。

热心网友 时间:2022-04-18 05:34

执行过程:

先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。

当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。

如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

热心网友 时间:2022-04-18 07:26

C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;

case常量表达式n: 语句n;
default:语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

热心网友 时间:2022-04-18 09:34

switch语句的作用是根据表达式的值,是流程跳转到不同的语句。switch语句的一般形式如下:
switch
{
case 常量1:语句1
case 常量2:语句2
。 。 。
。 。 。
。 。 。
case 常量n: 语句n
defult : 语句n+1
}

热心网友 时间:2022-04-18 11:58

int num=0;
switch(num){
case 0: { //如果num==0,就执行;
cout<<"我爱你"<<endl;
break; //跳出switch;
}
//case 可以续杯;
default : cout<<"我的芳华不属于你"<<endl ; //如果上面都不满足,就执行;
}

热心网友 时间:2022-04-18 14:40

不知道,不好意思
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
桃李芬芳的近义词是? 请会答正确。 急... 墨西哥很混乱吗 为什么我的OPPOR9手机连接到任何蓝牙设备放歌曲,都没有办法在蓝牙设备... OPPOA9如何连接酷狗与手机蓝牙? 华为荣耀3X 白色畅玩版的声音调至最大声仍很小声 荣耀3x刷机后卸载了一些系统软件,然后就无法开机,一直停留在开机界面... 平安富赢金生年金保险值得买吗?最全产品测评! 收音机音量旋钮音量最大还是小 德生pl_450收音机音量电位器声音惑大惑小,电位器的型号是什么_百度知 ... 浙江金融学院有什么专业 英雄联盟S10主题歌曝光,拳头是在明示谁?是IG,V5还是TES? 想请问一下2018年lol S8全球总决赛里中场休息的这段BGM是什么? 原来微信朋友圈分享到qq或qq空间的选项怎么没有了? 英雄联盟s8登录界面背景音乐是什么 《英雄联盟》S9总决赛主题曲公布,相比往年,今年的主题曲怎么样? 英雄联盟S1-S7赛季总决赛主题曲是什么? 英雄联盟s9总决赛一天比赛结束后的那首曲子是什么? 飘柔洗发水防伪二维码怎么用? 关于二维码防伪防窜货 微信里怎么没有同步qq空间的图标微信已帮定QQ号了微信朋友圈怎么没有同步QQ空间图标_百度问一问 如何购红包封面 二维码也被运用到物联网防伪体系,作为载体解决了家具企业的防伪需求,请问二维码防伪技术如何实现? 可变二维码喷码机能喷印做到防伪追溯控制吗? 小米11怎么激活55w充电 张取名字女孩 种树人让我懂得了什么道理 植树造林体现了哪些政治学道理? 种树告诉我们什么道理? 植树造林好处多的道理说明文 我们大力提倡植树造林,在城市中更是提倡植树种草,搞好环境绿化,你能解释其中的道理吗? 海参小孩能吃吗 小孩可以吃海参 请问万代高达的龟霸好吗? 求英雄联盟s9主题曲phoenix资源 高达模型 达人们 “MG龟霸”和“HG龟霸” “熊霸”好不好 值得入手吗? lol s8客户端登录背景音乐怎么替换,替换过一次,但是被覆盖了,谢谢了 高达VS高达NEXT 龟霸第三个技能咋用 就是呢个圈圈的技能 在所有的“高达”系列中,哪个高达最帅最酷 高达突击生存中魔蝎,吉翁号,龟霸怎么出现? 有什么非传统的高达么?类似于钢坦克,钢球,熊霸,龟霸那样的,或者是有什么用锤子的高达么? 高达入坑作,在万代MG oor 龟霸 扎古 自由(普通的) RG的自由和扎古, 还是大班的OOR,在这里面选 请问龟霸acguy是在哪部作品里面出现过的? 万代mg高达中内构最复杂的是哪款? 高达模型龟霸应该怎么旧化? 高达中吉翁海鲜三人组(魔蟹 龟霸 爱尔兰蟹)哪部哪集一起出现过? 高达MG模型中内构最精密最强的是哪款? 高达MG模型里哪些附送支架?(我一直到龟霸送了) SD高达 龟霸修理型强化什么 信息技术2.0第一个作业提交文档为空呢 新建一个word文档,文档第一行内容是“(IT)信息技术”。若保存时默认文件名,则该文档的文件名是