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

c语言switch的用法

发布网友 发布时间:2022-04-20 13:15

我来回答

4个回答

热心网友 时间:2022-04-30 16:33

switch语句的语法如下(switch,case和default是关键字):

switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}

controllingExpression(控制表达式)只求值一次。然后,从其constantExpression值等于controllingExpression值的case开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。

假如任何一个constantExpression值都不等于controllingExpression的值,就运行可选标签default之下的语句。

注意 假如controllingExpression的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

例如,前面的嵌套if语句可以改写为以下switch语句:

switch (day)
{
case 0 :
dayName = "Sunday";
break;
case 1 :
dayName = "Monday";
break;
case 2 :
dayName = "Tuesday";
break;
...
default :
dayName = "Unknown";
break;
}

遵守switch语句规则

switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:

只能针对基本数据类型使用switch,这些类型包括int和string等待。对于其他类型,则必须使用if语句。

case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。

case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

可以连续写下一系列case标签(中间不能间插额外的语句),从而指定自己希望在多种情况下都运行相同的语句。如果像这样写,那么最后一个case标签之后的代码将适用于所有case。然而,假如一个标签关联了一个或多个语句,又没有使用break来跳出,那么执行就不能贯穿到后续的标签,而且编译器会报告一个错误。例如:

switch (trumps)
{
case Hearts :
case Diamonds : // 允许贯穿 — 标签之间无额外代码
color = "Red"; // 针对Hearts和Diamonds这两种情况都会执行的代码
break;
case Clubs :
color = "Black";
case Spades : // 出错 — 标签之间有额外代码,而且没有使用break来跳出
color = "Black";
break;
}

热心网友 时间:2022-04-30 17:51

其一般形式为:
switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;

case常量表达式n: 语句n;
default : 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后
的语句。
【例】
main(){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
case 2:printf("Tuesday\n");
case 3:printf("Wednesday\n");
case 4:printf("Thursday\n");
case 5:printf("Friday\n");
case 6:printf("Saturday\n");
case 7:printf("Sunday\n");
default:printf("error\n");
}
}

本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
【例】
main(){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
case 7:printf("Sunday\n");break;
default:printf("error\n");
}
}

在使用switch语句时还应注意以下几点:
1) 在case后的各常量表达式的值不能相同,否则会出现错误。
2) 在case后,允许有多个语句,可以不用{}括起来。
3) 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4) default子句可以省略不用。

热心网友 时间:2022-04-30 19:26

switch(n){
case 1:
//add your code.1.
break;
case 2:
//add your code.2.
break;
.
.
.
case n:
//add your code n...
break;
default:
break;
}

}

热心网友 时间:2022-04-30 21:17

如1楼,说那么多,我就不说了··
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? 在教学课件中当需要动态的图像时最佳的图像格式是... c语言switch语句怎么用 c语言结构体数组在switch中该怎么调用 C语言中switch的使用 C语言程序中,switch是什么意思有什么用的?? c语言switch的用法 详细些 谢谢 C语言中switch语句什么意思 C语言中switch语句的用法 请问c语言中switch语句究竟是怎么用啊? 求教c语言中switch 语句的详细用法 c语言中switch怎么用? c语言中switch怎么用? 电视《我的1997》里面的角色有哪些? 有一部电视剧叫什么 一分二什么春天 有没有知道 我... 最值得一追的商战题材电视剧,哪一部你追过 求《经山历海》2021年百度云视频在线观看资源,王丽... 《一又二分之一的夏天》是一场充满恶作剧的青春表... 一又二分之一的夏夫演员表 一又二分之一的夏天主演都是谁? 泡豆角的正确方法 什么叫做GIF格式的图片? C语言switch语句的具体用法 C语言里的switch语句怎么用,最好有例子哈 制作gif格式的图片  仅支持.jpg .jpeg .png .gif 的图片格式什么... 动态图片的格式类型是什么 photoshop动态图片保存格式,应该是什么格式呢? 动态图片只有GIF格式吗 gif是动态还是静态图像格式 安卓手机恢复微信聊天记录方法两年前的聊天记录能... 中国经济转型是什么意思 中国经济转型什么意思 中国的"经济结构转型"是指什么意思 中国经济转型是什么意思? 当代中国经济转型有哪些困境 什么是中国经济转型? 怎么查小米手机是不是新的? 如何分析中国经济转型 什么是中国的经济转型 中国经济处在转型期具体什么意思?转型的目标是什么?