c语言 switch错误用法,C语言switch语句的详细用法
C语言还为多分支选择提供了另一个switch语句,其一般形式为:
开关(表达式){
案例常量表达式1: 语句1;
案例常量表达式2: 语句2;
...
条件常量表达式n: 语句n;
默认值: 语句n + 1;
}
语义是: 计算表达式的值. 将其与后续常量表达式的值一一比较. 当表达式的值等于常量表达式的值时,将执行后续语句,然后不进行判断,并且在个案之后的所有后续语句将继续. 如果在所有情况下表达式的值都与常量表达式不同,则执行default之后的语句.
[示例4-9]
#include
int main(void){
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");
}
return 0;
}
此程序需要输入数字并输出英语单词. 但是在输入3之后,将执行情况3及以后的所有句子c语言 switch语句,并输出星期三及以后的所有单词. 这当然是不希望的. 为什么会这样?这仅反映了switch语句的功能. 在switch语句中,“ case constant expression”仅等效于一条语句标签. 如果表达式的值等于标签,则执行将被重定向到该标签,但是在执行label语句后无法自动跳出整个switch语句,因此似乎继续执行所有后续case语句. 这与之前介绍的if语句完全不同,因此应特别注意.
为避免上述情况,C语言还提供了一个break语句,专用于跳出switch语句. break语句仅具有关键字break,没有参数. 稍后将详细介绍. 修改示例程序,在每个case语句之后添加一个break语句c语言 switch语句,以便在每次执行后可以跳出switch语句,以避免输出意外结果.
[示例4-10]
#include
int main(void){
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");
}
return 0;
}
使用switch语句时,还应注意以下几点: 大小写之后的每个常量表达式的值不能相同,否则会发生错误. 在这种情况下,允许使用多个语句,可以将其括在{}中. 可以更改case和default子句的顺序,而不会影响程序执行结果. 默认子句可以省略.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-286614-1.html
c语言 switch错误用法,C语言switch语句的详细用法相关推荐
- c语言编译错误 原文,C语言常见错误与警告
C语言常见错误与警告 C语言常见错误与警告C语言常见错误: 1 invalid type argument of '->' (have 'struct qstr_xid_element') 这种 ...
- 利用c语言设置密码错误循环,c语言运算符优先级与while循环案例
sizeof可以获取数据类型的内存中的大小(字节) #include #include // standared 标准 // input output 输入/输出 // header 头 .h头文件 ...
- linux中chmod命令的用法,【linux】chmod命令详细用法
功能说明: 变更文件或目录的权限 u:User,即文件或目录的拥有者. g:Group,即文件或目录的所属群组. o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围. a:Al ...
- c语言scanf错误c4996,C语言杂谈(一)scanf()、scanf_s()与错误 C4996
错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...
- c语言中错误executing,C语言编程中常见问题解读.doc
C语言编程中常见问题解读 为什么vc6打开的文件却不能编译1 为什么一个vc6工程中有两个main函数不能编译成功?我想写两个程序怎么办?2 为什么v6不能编译程序,生成信息说compile和link ...
- c语言scanf错误c4996,C语言常见错误杂谈(一)scanf()、scanf_s()与错误 C4996与解决方法...
错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...
- c语言scanf错误c4996,C语言杂谈(一)scanf()、scanf_s()与错误 C4996(示例代码)
错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...
- C语言C6292错误,测试c语言函数调用性能因素
标签: 函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作. 操作: 1, 调用函 ...
- 飞机订票系统c语言常见错误,编写C语言:飞机订票系统
满意答案 wukong828 2013.06.16 采纳率:46% 等级:12 已帮助:10888人 #include #include #include //#include #define ...
- C语言--gets、puts、scanf、printf函数详细用法与区别(小白也能看懂,看不懂私信骂我)
目录 一.前言 二.函数 gets().scanf() 深度解析 (1)头文件 (2)scanf()函数 (3)gets()函数 重点:(4) gets(a); 与 scanf("%s&q ...
最新文章
- SQL2K数据库开发二十三之索引操作重建索引
- Android targetSdkVersion 原理
- php 编译错误,PHP 编译错误及解决办法
- The 5th Zhejiang Provincial Collegiate Programming Contest------ProblemK:Kinds of Fuwas
- SQL查询最大值,返回整行数据
- python3 beautifulsoup 表格,使用Python中的BeautifulSoup拉取特定的表数据
- 缩点【洛谷P1262】 间谍网络
- gnss观测质量检查软件下载_【速查】你可能下载了个假“北斗”!
- fetch与axios
- PKM全民推广系列三:PKM搜索
- 继电器和蜂鸣器的使用
- k8s mysql 弹性_k8s 弹性伸缩,基于prometheus自定义指标
- usb3.0传输速度测试软件,Win10系统如何测试usb3.0设备传输速度
- 王家林Spark视频
- UnityC# MD5验证
- docker 自动签到模板制作
- python 降序排列
- PIL+pyqt 写了一个图片批量无损压缩工具python
- Day7 零基础python入门100天Udemy训练营-Hangman Game 继续学习import, if else, while loop, for loop
- mysql 距离计算排序
热门文章
- LNMP 平台的 redis 对接安装
- Jump视频实时抠图和语音降噪
- PowerBI软件的power query编辑栏和高级编辑器中文显示乱码解决办法
- 使用VAE(变分自动编码器),来预测用户流失.
- python3 爬取半次元cosplay图片
- 小猪的Python学习之旅 —— 12.Python并发之queue模块
- 随便举个例子,说明单线程比多线程编程提高性能
- 高斯分布估计子的性能与克拉默劳下界的讨论
- 小米6内存测试软件,小米6采用的是eMMC还是UFS2.1?来测试一下吧
- HDU 2000 Java 奇怪的jio