第27课 匹配翻译
匹配翻译(switch)
在编程小镇发展还不成熟的年代,村民们对翻译充满浓厚兴趣。他们不断思索如何将外来的语言翻译成自己的语言,为此深入研究了字典和语法书,但发现这样的方法过于烦琐,不适用于实际快速的翻译。此时,一位神秘的翻译师出现了,据说他拥有一种可以直接翻译不同语言的能力。
翻译师向村民们介绍了一种基于匹配翻译的技术。这项技术使用事先准备好的词典和短语表,将外语文本中的词汇与本地语言的对应词进行匹配,以实现翻译。
村民们借助这个原理,创建了一个星期翻译程序,只需要输入1~7的数字,程序就可以根据预先设定的匹配规则将数字转换为对应的中文和英文。
星期几

运行程序:
请输入星期,用数字表示:
星期三(Wednesday)
翻译助力理解
●switch:转换、开关。
●case:情况、案例、事例。
●default:默认。
(1)switch(day):switch是一位任务分配官,它根据传入圆括号里的数据来寻找匹配的case。程序依次核对用户输入的数字是否与case中指定的数字匹配,如果匹配成功,则程序执行对应case里的代码块;如果匹配不成功,则继续向下寻找新的case。
(2)break:每个case后面都有一个break语句,它的作用是告诉程序在执行完相应的代码后停止switch语句。如果没有break语句,那么程序将继续执行后续的case,这可能会导致错误的结果。
(3)default:如果用户输入的数字没有与任何一个case匹配,程序将执行default情况下的代码块,这里是将translatedDay设置为“翻译失败!”。如果没有default,也没有匹配的case,则直接结束程序。
划重点
switch的语法结构:

switch关键字用于声明一个switch语句。
程序会先计算expression表达式的值,然后从第一个case向下匹配后面跟着的值,如果匹配上了就执行case中的代码,执行完成后通过break结束任务;如果不匹配就继续向下寻找新的case。如果case都不能匹配上expression表达式的值,则执行default里的语句。

switch是一位任务分配官,他根据表达式的值从case小伙伴中寻找最能承担任务的那位。哪位case可以匹配上表达式的值,就说明那位case最能承担。找到匹配的case后,通过break告诉其他case,不用等待了。
如果最终没有找到合适的case,分配官就会启动他的备选方案,让default来完成任务。
巩固练习
(1)在switch语句中,每个case后面通常会有什么关键字来避免继续执行下一个case?()
A.exit; B.quit; C.break; D.stop;(2)阅读以下程序:

看看这些输入分别会输出什么?
①B________________________
②d_________________________
③Z________________________
(3)完成了星期程序后,村民们想使用switch语句将用户输入的数字(1~12)转换为对应的月份并输出。如果用户输入无效数字,则显示错误消息。请你来帮村民编写这段程序。