C语言中的switch语句用于从多个条件执行代码。 就像if else-if语句一样。

C语言中switch语句的语法如下:

switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }

C语言中switch语句的规则如下 –

switch表达式必须是整数或字符类型。

case值必须是整数或字符常量。

case值只能在switch语句中使用。

switch case中的break语句不是必须的。这是一个可选项。 如果在switch case中没有使用break语句,则匹配case值后将执行所有后的语句。它被称为通过C语言switch语句的状态。

我们试着通过例子来理解它。假设有以下变量及赋值。

int x,y,z; char a,b; float f;

有效的Switch

无效的Switch

有效的Case

无效的Case

switch(x)

switch(f)

case 3;

case 2.5;

switch(x>y)

switch(x+2.5)

case ‘a’;

case x;

switch(a+b-2)

case 1+2;

case x+2;

switch(func(x,y))

case ‘x’>’y’;

case 1,2,3;

C语言中的switch语句的流程图 –

我们来看一个简单的C语言switch语句示例。创建一个源文件:switch-statment.c,其代码如下 –

#include #include void main() { int number = 0; printf("Enter a number:"); scanf("%d", &number); switch (number) { case 10: printf("number is equals to 10n"); break; case 50: printf("number is equal to 50n"); break; case 100: printf("number is equal to 100n"); break; default: printf("number is not equal to 10, 50 or 100n"); } }

执行上面示例代码,得到以下结果 –

Enter a number:88 number is not equal to 10, 50 or 100

执行第二次,结果如下 –

Enter a number:50 number is equal to 50 请按任意键继续. . .

switch语句直通到尾

在C语言中,switch语句是通过的,这意味着如果在switch case中不使用break语句,则匹配某个case之后的所有的case都将被执行。

我们来试试通过下面的例子来了解switch语句的状态。创建一个源文件:switch-fall-through.c,其代码如下所示 –

#include #include void main() { int number = 0; printf("enter a number:"); scanf("%d", &number); switch (number) { case 10: printf("number is equals to 10n"); case 50: printf("number is equal to 50n"); case 100: printf("number is equal to 100n"); default: printf("number is not equal to 10, 50 or 100n"); } }

执行上面示例代码,得到以下结果 –

enter a number:10 number is equals to 10 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100 请按任意键继续. . .

从上面的输出结果中,可以清楚地看到,当匹配 number = 10 之后,由于没有break语句,其它后面的语句也打印执行了。

¥ 我要打赏   纠错/补充 收藏

c语言switch语句程序大全,C语言switch语句相关推荐

  1. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  2. 科学出版社c语言实验答案,程序设计基础c语言第三章程序结构教材习题答案科学出版社...

    第 1 页程序设计基础-C 语言(科学出版社教材)第三章-程序结构教材习题答案1.0 编写程序使整形变量:a=3,b=4,c=5,p=0xfffe,q=0xffff;浮点型变量:x=1.2,y=2.4 ...

  3. 电大java语言与面向对象程序设计基础_6406Java语言与面向对象程序设计基础A卷...

    6406Java语言与面向对象程序设计基础A卷 试卷编号:6406 座位号 浙江广播电视大学2006年春季学期开放教育专科期末考试 <Java语言与面向对象程序设计基础>试题 2006年7 ...

  4. c语言万年历查询程序代码,C语言小程序实现万年历

    分享一个简单的小程序,看看如何打印万年历吧~ 程序打开时时这样的,输入一个年份: 比如输入2016再回车,效果如下: 下面我们来看看实现这个程序的代码吧: #include #include #def ...

  5. c程序设计语言 qsort,【程序设计基础_C语言】北理工的恶龙(附qsort范例)

    [程序设计基础_C语言]北理工的恶龙(附qsort实例) 北理工的恶龙(附qsort实例) 背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集 ...

  6. 程序设计基础c语言上机考试,程序设计基础C语言上机考试题第一套.DOC

    程序设计基础(C语言)上机考试题 ( 第一套A卷 ) 2006~2007学年冬学期 2007年1月 应试人声明: 我保证遵守<上海大学学生手册>中的<上海大学考场规则>,如有考 ...

  7. c语言考试系统程序,二级c语言模拟考试软件下载

    无忧考吧二级c语言考试系统是一款非常专业的计算机二级C语言模拟考试软件,可以帮助用户朋友们对全国计算机二级C语言考试进行模拟测试学习,如果您对这一门课程并没有什么把握需要练习,这款考试模拟系统一定是你 ...

  8. c语言闪烁灯程序,单片机c语言闪烁灯程序

    <单片机c语言闪烁灯程序>由会员分享,可在线阅读,更多相关<单片机c语言闪烁灯程序(3页珍藏版)>请在人人文库网上搜索. 1.1 闪烁灯1 实验任务如图4.1.1 所示:在P1 ...

  9. sql注入语句示例大全_SQL Order By语句:示例语法

    sql注入语句示例大全 Order By is a SQL command that lets you sort the resulting output from a SQL query. Orde ...

最新文章

  1. 如何将tensorflow模型转PYTORCH模型
  2. Centos7制作docker初始镜像
  3. tp5防止sql注入mysql_TP5框架 《防sql注入、防xss攻击》
  4. The true love
  5. Django 学习(一)Django安装以及初步使用
  6. 斯诺登:FBI需要苹果帮助才能解锁iPhone完全扯淡
  7. linux版本信息i686,Linux下如何查看版本信息
  8. windows10查看本机IP脚本
  9. 标学教育计算机等级考试系统,标学教育电脑版
  10. SQL注入风险高,手写 SQL 须谨慎
  11. 利用python编写个性二维码制作工具(支持微信名片二维码),并打包成EXE可执行文件。——001
  12. C# Socket简单例子(服务器与客户端通信)【转】
  13. My Thirty-eighth - 验证二叉树搜索树 - By Nicolas
  14. 函数防抖(debounce)和节流(throttle)在H5编辑器项目中的应用
  15. JZOJ 幽幽子与森林
  16. 思考“手绘家谱”的算法
  17. prf###.tmp临时文件导致磁盘资源不足
  18. 【基础语法篇】Java必备基础(思维导图+代码)
  19. 树莓派(5):CSI摄像头 vs USB摄像头
  20. web综合 限时秒杀效果的制作

热门文章

  1. sublime的安装
  2. [转] Jenkins实战演练之Windows系统节点管理
  3. Collections.sort()的使用
  4. Servlet登陆功能的实现
  5. 一步一个脚印学习WCF系列之WCF基础术语—绑定(Binding)(五)
  6. MapXtreme 操作地图时出现调用目标发生异常的解决方法--地图状态保存
  7. 自己动手写一个Struts2
  8. ACM模板--邻接矩阵 有向图 搜索算法
  9. etcd分布式之分布式通知与协调
  10. strcpy()和memcpy()的区别