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

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

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

switch的一般形式如下:

1 switch(表达式)2 {3 case常量表达式1: 语句14 case常量表达式2: 语句25 6 case常量表达式n: 语句n7 default: 语句n+1

8 }

说明:

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

int main(void)

{

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

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

scanf("%d", &val);

switch (val)

{

case 1:

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

break;

case 2:

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

break;

case 3:

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

break;

default:

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

}

return 0;

}

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

case zhen语句_switch case语句,switch case用法详解相关推荐

  1. Sql语句中between与in的用法详解

    通常在写SQL语句中我们时不时就会用到between或者in,或者两者组合在一起,between的运算符用于 WHERE 表达式中,选取介于两个值之间的数据范围.BETWEEN 同AND 一起搭配使用 ...

  2. C语言switch的用法详解

    C语言switch的意思是多项选择的意思. 如图所示.定义一个整数变量a的值为2 如图1所示定义a等于2所以输出case 2:后面的程序. 如果我们定义a=3的话.所以不满足case 1和 case ...

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

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

  4. switch case用法详解

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

  5. c语言 switch case 字符串,c语言switch case用法详解

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

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

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

  7. MySQL中Case When用法详解

    最近,在学习Hive基础知识时,遇到了遇到了Case When Else End语法,以前学习MySQL时忽略了这部分知识点,现总结一下相关的知识给大家.首先练习一个例子如下: 一.学生课程成绩统计 ...

  8. c语言while将字符循环,C语言 while语句的用法详解

    在C语言中,共有三大常用的程序结构: 顺序结构:代码从前往后执行,没有任何"拐弯抹角": 选择结构:也叫分支结构,重点要掌握 if else.switch 以及条件运算符: 循环结 ...

  9. SQL语句 SELECT LIKE用法详解

    在SQL结构化查询语言中,LIKE语句有着至关重要的作用. LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用 ...

  10. c语言for表达式1的作用,C语言for语句用法详解

    C语言for语句用法详解 C语言是一门高级计算机编程语言,设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面小编给大家介绍C语言f ...

最新文章

  1. C语言语句知识结构大学霸IT达人
  2. spark RDD底层原理
  3. 运动背景下的运动目标检测
  4. 关于ACE_Svc_Handler
  5. Uipath 学习栏目基础教学:11、录制
  6. 【宜搭客户说第二期】宜搭助力跨境金融行业实现数字化管理
  7. 恒生证券期货行业用户维稳工作指引(一)
  8. QT4.8界面设计(MSVC2010X)+位姿哈希+ICP结果
  9. 汇编为什么分段执行总是执行不了_为什么我的计划总是执行不了?这里有你要的答案...
  10. 全球加速产品 方便更多学生获得申请名校的机会
  11. [导入]JavaScript常用函数:Trim() LTrim() RTrim()
  12. Python format()函数
  13. poj——3349 哈希加模拟
  14. 课程表的实现(基于强智科技教务系统)
  15. 锐龙R3 4100 性能怎么样 相当于什么水平
  16. 微信小程序 text 标签小技巧
  17. 2017省市区最新编码(依据国家统计局最新数据生成)
  18. HFSS入门 T型波导模型优化
  19. 2021年危险化学品生产单位安全生产管理人员考试题及危险化学品生产单位安全生产管理人员作业考试题库
  20. BetaFlight模块设计之三十:Cli模块分析

热门文章

  1. SAP UI5 标准应用的多语言支持 - SAP UI5 运行时语言判定机制
  2. 为加快SAP Commerce Cloud在windows服务器上的启动速度,而禁用的一些服务
  3. SAP Spartacus cms页面请求的语言参数
  4. 控制SAP Spartacus shipping address页面spinner显示的逻辑
  5. 如何取消Angular rxjs Observable的订阅
  6. Angular 父子Component的数据绑定实现
  7. 推荐一个好用的Chrome扩展,专门处理xml的,名叫XML Tree
  8. 把Hybris Commerce本地tomcat的keystore给本机的tomcat使用
  9. wizard generated application - how is detail page rendered
  10. SAP CRM product hierarchy和category的三个问题问答