C语言switch语句的用法详解 黑马程序员
来源:互联网 发布:中岛美嘉 知乎 编辑:程序博客网 时间:2024/05/16 12:59
<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!
语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
【例】本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。
为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
【例】
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
【例】
- #include <stdio.h>
- 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;
- }
为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
【例】
- #include <stdio.h>
- 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;
- }
- }
0 0
- C语言switch语句的用法详解 黑马程序员
- C语言switch语句的用法详解
- 黑马程序员---C语言基础---Switch语句
- 黑马程序员-C-switch语句
- C语言 switch语句的的用法
- 黑马程序员---c语言中的分支语句 switch与if
- 【黑马程序员】【C语言】选择结构-switch语句
- C语言 switch 语句用法
- C语言switch语句详解
- 黑马程序员---IOS基础---switch语句用法
- 黑马程序员-C语言的SWITCH 和case问题
- switch语句的用法详解
- 在C语言中 switch语句的用法
- 黑马程序员 switch语句
- 黑马程序员---C语言学习笔记之分支结构if语句与switc语句的详解
- 黑马程序员——C语言循环、switch与if语句笔记和习题
- C语言之switch语句详解
- switch语句用法详解
- 二分法求方程的根
- 进程和线程的形象描述
- Robotium 专题(二): Robotium 只有 apk 文件时进行测试
- windows 2003 配置NTP
- Android Bander设计与实现 - 设计篇
- C语言switch语句的用法详解 黑马程序员
- 陈怡暖:2015.5.28早间最强现货黄金白银操作建议
- ArcGis API for JavaScript 本地部署和Demo
- c++按格式写txt文档
- 字典查询(部分)
- 为什么建堆的时间复杂度是O(n)?
- Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
- Cocos2d-x 地图行走的实现2:SPFA算法
- SpringMVC入门