switch/case 语句是 C 语言中的多分支选择语句.
想象你是程序员, 要解决这样一个问题: 班级值日是这样安排的, 星期一小李值日, 星期二小王值日, 星期三小张值日, 星期四小赵值日, 星期五小孙值日, 要求写一个程序, 当输入星期几时能够正确输出今天是谁值日.
如果你读了 C 程序解析: C 语言控制语句之 if/else 语句详解这篇文章, 相信你能想到: 这不就是判断一下输入的是星期几, 然后执行相应的操作嘛, 用 if 语句就可以搞定:
- if("星期一")
- {
- printf("小李值日");}
- if("星期二") {
- printf("小王值日");}
- .....
当然可以这样来实现, 但是这样多个 if 语句会显的很混乱, 而且代码中存在大量冗余.
某大牛曾说:"我们要优雅的写代码, 写优雅的代码, 做优雅的程序员~".
C 语言提供了 switch/case 语句来解决多分支选择语句, 它的逻辑是这样的:
小编推荐一个学 C 语言 / C++ 的学习裙[ 七三零, 一三零, 二二一 ] , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
实现也很简单, 以上述值日为例:
- int main(){
- int today;
- printf("输入今天的日期:");
- scanf_s("%d", &today);
- switch (today){
- case 1:
- printf("小李值日");
- break;
- case 2:
- printf("小王值日");
- break;
- case 3:
- printf("小张值日");
- break;
- case 4:
- printf("小赵值日");
- case 5:
- printf("小孙值日");
- break;
- default:
- printf("输入的日期不正确");
- }
- return 0;
- }
通过上一篇文章 C 程序解析: C 语言循环语句 break 和 continue 关键字, 大家应该明白 "break" 是什么意思吧, 那最后的 "default" 是什么意思呢? 它一般是用来处理错误的输入的, 上述例子中我们定义好了 1~5 对应该怎么处理(即由谁来值日), 但如果我们输入一个 "9", 没有定义好的处理语句, 此时, 就会执行到 default 处.
小编推荐一个学 C 语言 / C++ 的学习裙[ 七三零, 一三零, 二二一 ] , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
通过 switch/case 语句, 我们可以简洁的处理多分支选择地问题, 实现 "优雅的写代码, 写优雅的代码" 的小目标~
这些是 C/C++ 能做的
来源: http://www.jianshu.com/p/86d959ed81d1