随时转向的命运列车
有时候当你在写条件逻辑时,需要一次又一次地检查同一个变量的值。为了避免写许许多多的if
语句,C语言提供了另一种选择:switch
语句。
switch
语句和if
语句有些像,但它可以测试一个变量的多种取值:
当计算机遇到switch
语句,它会检查给出的值,然后寻找匹配的case
。找到后,它会运行case
之后的所有代码直到遇到break
语句。计算机会一直运行下去直到有人吩咐它退出switch
语句。
漏掉break会让代码出错。
大部分C程序在每个
case
段的末尾都有一条break
语句,这样做虽然会有失效率,但可以提高代码的可读性。
磨笔上阵
让我们再看一下
cards
程序中的那段代码:
磨笔上阵解答
请用
switch
语句重写代码。
要点
switch
语句可以取代一连串的if
语句。
switch
语句检查一个单独的值。计算机会在第一个匹配的
case
语句处开始执行代码。在遇到
break
或到达switch
语句的末尾前,代码会一直运行。核对是否把
break
放对了地方,否则switch
语句就会出错。
这里没有蠢问题
问:为什么我要用
switch
语句取代if
?答:当需要多次检查同一变量时,使用
switch
语句会更方便。问:使用
switch
语句有什么好处?答:有这几个好处。第一,让代码更清晰,一段代码处理一个变量的结构,结构一目了然,相反,一连串的
if
语句就没那么清晰了;第二,可以用下落逻辑在不同的分支之间复用代码。问:
switch
语句只能检查变量吗?它能检查值吗?答:能,
switch
语句仅仅检查两个值是否相等。问:我能在
switch
语句中检查字符串吗?答:不能用
switch
语句检查字符串或任何形式的数组,switch
语句只能检查值。