C语言程序——Switch分支选择程序
文章目录
- 前言
- 一、switch的使用
- 二、程序实例
- 1.程序代码
- 2.运行结果
- 3.结果分析
- 三、拓展应用
- 1.switch中的break
- 2.switch语句执行过程
- 总结
前言
条件分支比较多的时候,使用if语句时嵌套的层数多,使程序冗长可读性降低。switch语句称为分支语句,如果题目中的多条件是有规律的,则可以采用switch语句来实现。
一、switch的使用
switch语句不能根据表达式的取值范围做出选择,所以使用的时候会有很大的局限性。让我们根据本次的实例了解switch的使用。
二、程序实例
从键盘上输入0~7数字字符,转化为相对应的星期输出。0——Sunday;1——Monday;2——Tuesday;3——Wednesday;4——Thursday;5——Friday;6——Saturday。
根据输入的字符不同,有不同的输出形式.。switch语句是一条复合语句,因此一对花括号是必须书写的,另外switch、case、default和break都是构成switch多分支结构的关键字,[]表示语句中的关键字break、default可有可无。其中的表达式是任意类型的表达式。case关键字和其后的整型常量表达式中间的应有空格,case分支中整型常量表达式只能由整型常量构成。switch语句的语法形式如下;
switch(表达式)
{
case整型常量表达式1:语句组1[break]
case整型常量表达式2:语句组2[break]
case整型常量表达式n:语句组n[break]
[default]:语句组n+1
}
switch语句是复合语句,花括号中间包含switch语句构成的必要部分,另外switch、case、default和break是构成switch多分支结构的关键字。【】表示语句中的关键字break、default可有可无。其中表达式是任意类型的表达式,case关键字和其后的整型常量表达式中间应有空格,case分支中整型常量表达式只能由整型常量构成。
注意:语句组可以是单条语句,也可以是多条语句,这一点区别于if…else语句,if…else结构中的两个分支只能是单条语句。
程序实例是输入数字,输出星期,可以看出实例中的条件十分适合利用switch语句来设计实现,设计步骤:
- 数据:输入字符c,字符范围为0~7。
- 操作:字符变量c作为switch的表达式,在各个case分支中常量为0~7,分支语句中输出各个星期代表的常量。
1.程序代码
#include "stdio.h"
void main() {
char c; /*定义字符型变量*/
printf("please input \'0\' to \'9\':"); /*输入提示*/
c=getchar(); /*用getchar()输入字符*/
switch(c) { /*根据c决定输出结果*/
case '0':printf("\nSunday\n");break;
case '1':printf("\nMonday\n");break;
case '2':printf("\nTuesday\n");break;
case '3':printf("\nWednesday\n");break;
case '4':printf("\nThursday\n");break;
case '5':printf("\nFriday\n");break;
case '6':printf("\nSaturday\n");break;
default:printf("error\n");
}
}
2.运行结果
3.结果分析
switch语句的执行过程为:计算switch表达式的值C,自上而下寻找各个case常量后面是否有和c相等的常量,找到执行case后面的语句组。假如输入数据为1,和第二个case后面常量表达式相同,程序执行语句组2 的分支,当语句组2执行完毕后,若有break语句,则中断switch语句的执行;否则继续执行语句组3,直到遇到break或者执行到switch语句的最后一条;如果没有和表达式的值相匹配的整型常量表达式,则执行default后的语句组。
三、拓展应用
1.switch中的break
对于switch分支语句中的break,要注意break不属于语句的一部分,程序中也可以没有break语句,那么会有不同的执行结果。例如本程序实例中如果去掉break语句,输入4以后,程序的输出结果为:
Thursday
Friday
Saturday
2.switch语句执行过程
switch语句执行过程的流程会贯穿各个case标签,而不是停留在单个case标签,除非遇见break语句终止流程,或者语句执行完毕。
总结
以上就是本文全部的内容,本文仅仅简单介绍了switch分支选择语句的使用,文章有不足的地方请在评论区留言讨论。