前面已经提到了switch语句,如果程序有过多的分支时,一般采用switch语句,可以使程序结构清晰。其一般形式为:
其意义是:计算switch后面表达式的值,并将其作为条件与case后面的各个常量表达式的值相比,如果相等时则执行case后面的语句,再执行break(间断语句)语句,跳出switch语句结构;如果case后面没有和条件相等的值时就执行default后的语句。如果当没有符合的条件时,不做任何处理,那可以不写default语句,default语句只是程序不满足所有case语句条件情况下的一个默认情况执行语句。
【例5.7】
该程序使用了switch语句,可以看出这个程序拥有13个分支,如果使用if语句的话会显得非常混乱,但是使用了switch语句,就感觉非常清晰明了。但是当输入“3”之后,却执行了case3以及以后的所有语句,输出了“三月”及以后的所有单词,这当然并非我们的本意所在。为什么会出现这种情况呢?这恰恰反映了switch语句的一个特点。在switch语句中,“case常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句,所以出现了继续执行所有后面case语句的情况。这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专门用于跳出switch语句,break语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一条case语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
【例5.8】 输入月份,打印1999年某月有几天。
程序如下:
使用switch语句时应注意以下几点:
1)在case后的各常量表达式的值都应该是不一样的,否则会出现错误。(www.xing528.com)
2)在case后,允许出现多条语句,可以不用{}括起来。
3)各case和default语句位置的先后顺序可以改变,而不会影响程序执行结果。
4)default子句可以省略不写。
程序举例
【例5.9】 输入3个整数,输出最大数和最小数。
【例5.10】 计算器程序。用户输入运算数和四则运算符,输出计算结果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。