C语言switch语句的用法详解
转载: http://c.biancheng.net/cpp/html/39.html
C语言提供了一种用于多分支选择的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;
}
本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。
为了避免上述情况,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;
}
在使用switch语句时还应注意以下几点:
- 在case后的各常量表达式的值不能相同,否则会出现错误。
- 在case后,允许有多个语句,可以不用{}括起来。
- 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
- default子句可以省略不用。
C语言switch语句的用法详解相关推荐
- c语言字符串switch用法,C语言switch 语句的用法详解
搜索热词 C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的 ...
- c语言while将字符循环,C语言 while语句的用法详解
在C语言中,共有三大常用的程序结构: 顺序结构:代码从前往后执行,没有任何"拐弯抹角": 选择结构:也叫分支结构,重点要掌握 if else.switch 以及条件运算符: 循环结 ...
- php中switch语句的理解,php中switch语句的使用详解
我们之前给大家介绍了关于php中switch语句的介绍,我们都知道php中switch语句是循环语句,是一个开关语句,那么很多朋友都只知道简单的switch开关语句的用法了,今天就带大家了解一下php ...
- php函数find的用法,c语言find函数的用法详解
c语言find函数的用法详解 C语言之find()函数 find函数用于查找数组中的某一个指定元素的位置. 比如:有一个数组[0, 0, 5, 4, 4]: 问:元素5的在什么位置,find函数 返回 ...
- 784-C语言rand和srand用法详解
C语言rand和srand用法详解 在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌. 在C语言中,我们一般使用 <stdlib.h> 头 ...
- C语言再学习 -- Xargs用法详解
参看:Xargs用法详解(原创) 简介 之所以能用到这个命令,关键是由于很多命令不支持 | 管道来来传递参数,而日常工作中有这个必要,所以就有了 xargs 命令,例如: 这个命令是错误的: find ...
- c语言switch case缩进,C语言中的switchnbsp;casenbsp;语句的用法详解
本文就几个实例来说明Switch case 语句的用法. 说是C语言中的Switch case,其实和html+javascript中的Switch case语法是基本一样的哦. 问题: 有这么一个C ...
- 计算机科学类专升本复习之“C语言fopen函数的用法”详解(初稿)
C语言fopen函数的用法,C语言打开文件详解 在C语言中,"操作文件" 之前 必须 先"打开文件"; 所谓"打开文件",就是让 " ...
- 第五章 C语言循环结构和选择结构_C语言break和continue用法详解(跳出循环)
break关键字 在<C语言switch case语句>一节中,我们讲到了break,用它来跳出 switch 语句. 当 break 关键字用于 while.for 循环时,会终止当前层 ...
最新文章
- 原型开发、模型构建和设计反馈在线工具
- 通俗易懂地解释遗传算法?有什么例子?
- 零基础自学python看什么书-零基础学习Python那些书值得看
- 游戏开发概要策划书的内容
- Android下的junit 单元测试
- android平台 arcgisr_第一个基于ArcGIS的Android应用
- Arturia Prophet Mac音频插件:将Prophet 5,Prophet VS,Prophet Hybrid三种不同音乐合成器于一体
- PHP轻量级在线客服系统源码 自适应手机移动端
- SQL Server 默认跟踪 -- 捕获事件详解
- fiddler实现将http请求的js转为本地的js文件
- 58 集团面向亿级用户 IM 长连接服务设计与实践
- CSS动态绑定背景图片
- xml 入门 shema_02
- uniapp获取云服务空间 数据
- 正则表达式替换字符串中的${}里面的数据
- 插入排序(动图理解)
- 数据结构 笔记:图的遍历(BFS)
- 【贪玩巴斯】C++提高编程,掌握STL中最关键的容器技术~(三){map、set、list、queue、stack 五大容器一篇解决!} //2021-08-25
- Day13 多态、Object、抽象、接口
- linux定时重启tomcat shell脚本
热门文章
- 计算机网络-什么是因特网
- 【转载】联想ThinkPad X390笔记本装win7系统及BIOS设置方法
- 认证资料大全(十三)------ Juniper Networks认证列表
- Yahoo! User Interface Library,YUI,YUI下载,YUI学习,YUI是什么,YUI浅谈,YUI研究(2)
- ext 6.0开发实例二
- OCR财务报表识别方案应用
- 数据库-jdbc、spring-jdbc、spring-boot-starter-jdbc
- Matlab plotyy画2个纵坐标不同的图
- 《MySQL DBA:SSL连接》
- 解决GitHub/GitLab官网访问慢的问题