C语言中if-else语句可以实现多分支结构。但是当分支过多时,用if-else语句处理会不太方便,而且容易出现if、else 配对出错的情况。C语言还提供了另一种用于多分支选择的switch语句,适用于条件是整型变量或字符变量的等值判断。比如根据输入的值,决定执行的语句。
格式:
执行过程:计算switch 后表达式的值,并逐个与case 后常量表达式的值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,直到遇到break语句为止。如果表达式的值与所有case 后的常量表达式均不相同,则执行default 后的语句。
说明:
(1)switch 后表达式的值,可以是字符型或整型,不可以是浮点型。
(2)每一个case 的常量表达式的值必须互不相同,否则会出现错误。
(3)在case 后可以有多个语句,不需要用大括号括起来。
(4)case 后可以不写语句,则表示它与后续case 执行相同的语句。
(5)各个case 和default 子句的先后顺序可以变动,一定是先与case 后的常量不匹配后才执行default 子句。
(6)default 子句可以不写,如果没有default,如果所有case 后面的常量表达式的值都没有与switch 后的表达式的值匹配,则什么也不执行,直接退出switch语句。
(7)C语言中提供了一种break语句,可用于跳出switch语句。在每一个case语句之后都可以添加break语句,当匹配上case 后的常量,执行完case 后的语句,遇到break,便可跳出switch语句,可以避免程序向下执行。
(8)break 可以不写,此时若当匹配上case 后的常量,则执行完case 后的语句后,程序继续向下执行下面的case 子句。
(9)switch语句可以嵌套switch语句。如:(www.xing528.com)
【例5.5】输入1 到7 之间的数字,输出对应的星期几。
解题思路:
使用switch语句时,要确定什么作为表达式以及case 的个数。
题目要求根据输入数字的值决定输出。switch 后的表达式为输入的变量。由于对应7 天,有7 种不同的输出,需要定义的case 个数为7。还有一种情况就是如果输入的值不在0~7 之间,要考虑该如何提示。
当从键盘输入8 ↙后,运行结果如下:
程序讲解:
当输入8 后,变量n 的值为8,switch表达式的值为8,系统会依次匹配case 后的常量。当所有case 后的常量都没有匹配上时,执行default。
思考一下:如果输入1,下列程序的输出结果是什么?
【例5.6】 简单的计算器设计。
当从键盘输入+↙后,程序运行结果如下:
程序讲解:
程序中要根据输入符号变量的值决定执行不同的运算。定义变量ch表示输入的运算符号,要执行加、减、乘、除4 种运算,定义了四个case 子句对应4 种符号。如果输入的不是规定符号,则执行default 子句。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。