C语言程序——Switch分支选择程序

发布于:2022-12-08 ⋅ 阅读:(688) ⋅ 点赞:(0)


前言

条件分支比较多的时候,使用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语句来设计实现,设计步骤:

  1. 数据:输入字符c,字符范围为0~7。
  2. 操作:字符变量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.运行结果

switch分支选择星期

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分支选择语句的使用,文章有不足的地方请在评论区留言讨论。