用if…else…if条件语句可以实现多分支选择,但如果分支较多,会使程序变得冗长,可读性降低。C语言中提供了专门处理多分支情况的switch语句(也称开关语句),可根据switch中表达式的不同值判断执行哪一分支。
switch语句的一般格式如下:
switch语句将表达式的值与每个case中常量表达式的值进行匹配,如果找到了匹配的值,就会执行相应case后的语句块,否则执行default后的语句块。case后break的作用是跳出整个switch结构,break语句可以省略。如果某case后省略了break语句,程序将会顺序执行其后的其他语句块。关于break关键字我们将在第5章中做具体介绍。
【说明】
(1)switch后面表达式的值只能是整型、字符型或枚举型数据。
(2)case后只能是常量或常量表达式,其值必须互不相同。
(3)case和default出现的次序不影响选择结果。
(4)若多个case后的执行语句是一样的,则该执行语句只需书写一次即可。
(5)所有的语句块都不需要带“{}”。
【例4-6】用switch语句改写例4-4中的程序。
分析:设score为整型变量,在score≥90的范围内,score可取90,91,…,99,100等数值。若把这些值都列出来,十分烦琐。我们可以采取简单策略,利用整数相除结果自动取整的特性,将score与10相除。当score≥90时,score/10只可能取9和10两个值。
程序运行时若输入85,则运行结果如图4-8所示。
图4-8 例4-6的运行结果(www.xing528.com)
【例4-7】实现一个简单的动物识别专家系统。该系统可以根据一些特征识别哺乳动物和鸟类,也可以识别金钱豹、老虎、信天翁和企鹅这几种动物。
分析:专家系统就是让计算机具有人类专家的知识、经验和技能,能够像人类专家一样解决实际问题。本系统中,通过对用户的提问,识别出2类物种、4种动物。以下6条规则为计算机已经掌握的知识。
规则1:if该动物有毛发then该动物是哺乳动物。
规则2:if该动物有羽毛then该动物是鸟类。
例4-7 运行视频
规则3:if该动物是哺乳动物and是黄褐色and身上有暗斑点then该动物是金钱豹。
规则4:if该动物是哺乳动物and是黄褐色and身上有黑色条纹then该动物是虎。
规则5:if该动物是鸟类and善飞then该动物是信天翁。
规则6:if该动物是鸟类and不会飞and会游泳and是黑白二色then该动物是企鹅。
以上只包含简单规则,想要功能更完善,我们可以添加更多精确的规则。
程序运行时若依次回答问题,则运行结果如图4-9所示。
图4-9 例4-7的运行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。