《C++入门经典(第5版•修订版)》——6.5 switch语句

本节书摘来自异步社区出版社《C++入门经典(第5版•修订版)》一书中的第6章,第6.5节,作者:【美】Jesse Liberty , Rogers Cadenhead,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.5 switch语句

C++入门经典(第5版•修订版)
对于同一个变量,使用一系列if或if-else条件时,C++代码将非常繁琐,且很容易让人感到迷惑。一种替代方案是使用switch语句,它检查一个表达式,并根据其值执行多个代码块中的一个。

switch语句由关键字switch、要检查的表达式、一个或多个case部分和可选的default部分组成,其中每个case部分都对应于表达式的一种可能取值。

下面的switch语句根据您杀死了多少怪兽决定是否在单词zombie后面加s。
image

其中的switch表达式为变量zombies,两个case部分对应于变量zombies的不同取值。如果变量zombies的值为0,就使用复数,导致输出为“You have killed 0 zombies”;如果为1,输出就将为“You have killed 1 zombie”(末尾没有s)。

default部分处理变量zombies为其他取值的情形,它显示“You have killed”以及怪兽数和单词zombies。

在switch语句的case部分,只能进行相等比较,而不能进行关系运算和布尔运算。如果有case值与表达式匹配,将执行相应的语句,然后继续执行到switch块末尾或遇到的第一条break语句。如果没有匹配的case部分,将执行可选的default部分。如果没有匹配的case部分,也没有default部分,将跳到switch语句后面执行。

提示:
在switch语句中,总是应该包含default部分,即使没有理由使用它,这是一种良好的编程习惯。可使用default部分显示一条错误消息,它表明表达式的值出乎意料,不与任何case部分匹配。
在前面的示例中,每个case部分都以一条break语句结尾,用于退出switch语句。如果case部分末尾没有break语句,将继续执行下一个case部分。虽然在有些情况下,可利用这种方法来执行多个case部分,但在大多数情况下,您都希望每个部分以break语句结尾。

在程序清单6.7中,程序BadTeacher使用一条switch语句根据考试成绩给予学生相应的评语。

程序清单6.7 BadTeacher.cpp的完整源代码
image

这个程序让用户输入用字母表示的成绩:A、B、C、D或F,然后给予相应的评语。下面是该程序的三种输出:

image

程序要求用户输入一个字母。第8行的switch语句检查输入的字母,第10行的case 语句检查字符是否为A,如果是,就执行第11行:显示评语“Finally!”,而下一行的break语句结束switch语句。

还有其他4个case部分分别测试不同的成绩。如果没有case部分匹配,就执行第25~27行的default部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值