c语言switchcase用法详解

switch是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch是多分支选择语句。说得通俗点,多分支就是多个if。

推荐学习:c语言视频教程

从功能上说,switch语句和if语句完全可以相互取代。但从编程的角度,它们又各有各的特点,所以至今为止也不能说谁可以完全取代谁。

当嵌套的if比较少时(三个以内),用if编写程序会比较简洁。但是当选择的分支比较多时,嵌套的if语句层数就会很多,导致程序冗长,可读性下降。因此C语言提供switch语句来处理多分支选择。所以if和switch可以说是分工明确的。在很多大型的项目中,多分支选择的情况经常会遇到,所以switch语句用得还是比较多的。

switch的一般形式如下:

switch(表达式)

{

case常量表达式1:语句1

case常量表达式2:语句2

case常量表达式n:语句n

default:语句n+1

}

说明:

1)switch后面括号内的“表达式”必须是整数类型。也就是说可以是int型变量、char型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float型变量、double型变量、小数常量通通不行,全部都是语法错误。

2)switch下的case和default必须用一对大括号{}括起来。

3)当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。

再重申一下:switch是“选择”语句,不是“循环”语句。很多新手看到break就以为是循环语句,因为break一般给我们的印象都是跳出“循环”,但break还有一个用法,就是跳出switch。

4)若所有的case中的常量表达式的值都没有与switch后面括号内“表达式”的值相等的,就执行default后面的语句,default是“默认”的意思。如果default是最后一条语句的话,那么其后就可以不加break,因为既然已经是最后一句了,则执行完后自然就退出switch了。

5)每个case后面“常量表达式”的值必须互不相同,否则就会出现互相矛盾的现象,而且这样写造成语法错误。

6)“case常量表达式”只是起语句标号的作用,并不是在该处进行判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。

7)各个case和default的出现次序不影响执行结果。但从阅读的角度最好是按字母或数字的顺序写。

8)当然你也可以不要default语句,就跟if…else最后不要else语句一样。但最好是加上,后面可以什么都不写。这样可以避免别人误以为你忘了进行default处理,而且可以提醒别人switch到此结束了。

但是需要注意的是,default后面可以什么都不写,但是后面的冒号和分号千万不能省略,省略了就是语法错误。很多新手在这个地方很容易出错,要么忘了分号,要么忘了冒号,所以要注意!

下面给大家写一个程序,通过这个程序来看一下。

#include

intmain(void)

{

intval;//variable的缩写,“变量”的意思

printf("请输入您想去的楼层:");

scanf("%d",&val);

switch(val)

{

case1:

printf("1层开!\n");

break;

case2:

printf("2层开!\n");

break;

case3:

printf("3层开!\n");

break;

default:

printf("该层不存在,请重新输入\n");

}

return0;

}

在这个程序中最后的“该层不存在,请重新输入”现在还起不了作用。这个要等到学习循环语句的时候用循环实现。

本文转载自中文网

c语言 switch case 字符串,c语言switch case用法详解相关推荐

  1. python字符串strip的作用_Python字符串函数strip()原理及用法详解

    Python字符串函数strip()原理及用法详解 strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列.注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. 语法:str.s ...

  2. c语言getline作用,C++ cin.getline及getline()用法详解

    下面先看下C++ cin.getline用法,具体内容如下所示: 使用 C++ 字符数组与使用 string 对象还有另一种不同的方式,就是在处理它们时必须使用不同的函数集.例如,要读取一行输入,必须 ...

  3. x3用c语言函数表示,C语言中strtod()函数的用法详解

    函数原型: #include double strtod(const char *nptr, char **endptr); C语言及C++中的重要函数. 名称含义 strtod(将字符串转换成浮点数 ...

  4. C语言 rand函数,srand函数 生成随机数用法详解

    与随机数有关的两个函数,srand() 和 rand(),这两个函数都包含"stdlib.h"头文件里 srand()函数是随机数发生器,使得每轮产生的随机数列都不相同.      ...

  5. php switch case 判断语句,PHP的switch判断语句的“高级”用法详解,switch详解_PHP教程...

    PHP的switch判断语句的"高级"用法详解,switch详解 只所以称为"高级"用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实 ...

  6. switch case用法详解

    switch case用法详解 switch 是"开关"的意思,它也是一种"选择"语句,但它的用法非常简单.switch 是多分支选择语句.说得通俗点,多分支就 ...

  7. c语言fputc输入字符串,C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件),文件,字符,指针,函数,字节 C语言fgetc和fputc函数用法详解(以字符形式读写文件) 易采站长站,站长之家为您整理了C语言fge ...

  8. 电大计算机C语言1253,1253《C语言程序设计》电大期末精彩试题及其问题详解

    1253<C语言程序设计>电大期末精彩试题及其问题详解 (34页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实用文档&l ...

  9. PHP使用Switch语句判断星座,PHP的switch判断语句的“高级”用法详解 用switch语句怎样判断成绩的等级...

    php switch case 求具体详解,case里面能加if语句? swich 语句 我非常喜欢用 case里面加if干嘛 . php switch中能加if语句吗 PHP里 switch cas ...

最新文章

  1. Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
  2. C#异步编程的实现方式(6)——层次任务
  3. 第14章 结构和其他数据形式 14.12 typedef 简介
  4. [云炬创业基础笔记]第九章企业的法律形态测试5
  5. cesium米转换经纬度_cesium 笛卡尔坐标(单位:米) 与 经纬度(单位:弧度/度) 之间的转换。...
  6. (转)基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts
  7. python用什么来写模块-使用C语言编写Python模块-引子【转】
  8. top 并grep 特定信息打印至txt
  9. 130242014029-黄超强-实验一
  10. JavaScript学习手册八:JS函数
  11. 企业宣传软文怎么写?手把手教大家撰写企业宣传软文
  12. mysql复购率_Mysql与Pyhton实现复购率和回购率
  13. 相见恨晚 -- 彭佳慧
  14. 数据库三个级别封锁协议
  15. 戴尔dell PowerEdge R440安装redhat操作系统
  16. 怎么用java做全民飞机大战_基于VC++和OpenCV实现的全民飞机大战游戏
  17. 贝荣粒分享:谈谈兼职的坑
  18. 20、个人信息 - 小程序端开发 - 微擎小程序模块应用开发
  19. eBay 大数据平台的 HDFS 性能优化实践
  20. Deflater压缩算法

热门文章

  1. Linux中的组管理员-gpasswd
  2. 抖音日活3.2亿,可能有 3.3亿用户在同一天内使用抖音吗?(泊松分布的Python实现)
  3. 上拉电阻、下拉电阻的使用场景
  4. linux bond设备删除,删除修改bond
  5. 洛谷 P2128 赤壁之战
  6. P2128 赤壁之战 AC于2018.11.6
  7. 麻将算法之 ------ 胡牌算法
  8. 3A Cloud 思维导图 for Mac(思维导图软件)中文版
  9. 直播 | 7月7日DES 2020“开放数据:释放新要素原生动力”分论坛
  10. 2022年湖南省社会工作者考试综合能力(初级)练习题及答案