13.2 switch语句

最后更新于:2022-04-01 06:24:03

谈到枚举类型就不得不提switch语句,因为它们经常一起出现。switch语句是表示一组条件选择的另一种方式,而且语法上更漂亮,往往执行上也更有效率。switch语句看起来是这个样子的: ~~~ switch (symbol) { case ’+’: perform_addition (); break; case ’*’: perform_multiplication (); break; default: cout << "I only know how to perform addition and multiplication" << endl; break; } ~~~ switch语句与下面一组条件语句等价: ~~~ if (symbol == ’+’) { perform_addition (); } else if (symbol == ’*’) { perform_multiplication (); } else { cout << "I only know how to perform addition and multiplication" << endl; } ~~~ switch语句每个分支中的break是必须的,否则执行流会贯穿到下一个case条件。如果没有break语句,symbol为 ‘+’时,程序会先执行加法,然后执行乘法,最后打印错误信息。这个特性偶尔也用得到,不过大多数情况下,当程序员忘记break时,这是错误之源。 switch语句可以使用整型数、字符型和枚举类型。比如,可以这样把Suit变量值转换为相应的字符串: ~~~ switch (suit) { case CLUBS: return "Clubs"; case DIAMONDS: return "Diamonds"; case HEARTS: return "Hearts"; case SPADES: return "Spades"; default: return "Not a valid suit"; } ~~~ 这种情况并不需要break语句,因为return会使函数的执行流程返回到调用处,不会贯穿到下一个case条件。 一般,在每个switch语句中都包含一个default条件——用以处理错误和意外值——是个好的编程风格。
';