《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部分。

相关文章
C++从零基础到入门(2)—— (if、switch、for、while语句)
C++从零基础到入门(2)—— (if、switch、for、while语句)
C++从零基础到入门(2)—— (if、switch、for、while语句)
|
编译器 C++ 索引
C/C++零散知识点汇总之switch实现原理&switch和if-else对比
C/C++零散知识点汇总之switch实现原理&switch和if-else对比
|
C++
C++条件判断语句使用方法(if else 三目运算符 switch)
C++条件判断语句使用方法(if else 三目运算符 switch)
250 0
|
C语言 C++
《C++语言入门经典》一导读
C++语言是在C语言的基础上发展起来的,它在C语言的基础上融合了许多新的有利于程序开发的编程理念。C++语言是一种规范,它规范了程序员如何进行面向对象的程序开发。
1494 0
|
JavaScript C++
《C++语言入门经典》一3.2 循环语句
本节书摘来自华章出版社《C++语言入门经典》一书中的第3章,第3.2节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1526 0
|
JavaScript 前端开发 C++
《C++语言入门经典》一第3章 重要的逻辑工具——判断与循环 3.1 条件判断
本节书摘来自华章出版社《C++语言入门经典》一书中的第3章,第3.1节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1640 0
《C++语言入门经典》一2.10 小结
本节书摘来自华章出版社《C++语言入门经典》一书中的第2章,第2.10节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1057 0
|
存储 JavaScript C++
《C++语言入门经典》一2.9 上机实践
本节书摘来自华章出版社《C++语言入门经典》一书中的第2章,第2.9节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1214 0