今天聊一下基础知识 | 每日一练(173)

基础知识练习

士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭

读者:是否有根据字符串做切换的方法?

小林:没有直接的方法。有些时候, 更适合使用一个单独的函数以映射字符串到整数代码, 然后根据整数代码做切换。否则, 你当然也可以使用 strcmp() 和传统的if/else 链。

读者:是否有使用非常量 case 标志的方法 (例如范围或任意的表达式)?

小林:没有。最初设计 switch 语句就是为编译器能简单的做转换, 所以 case 标志被限制在单个、整形、常量的表达式。如果你不介意详述的列出所有的情况, 你可以把几个 case 标志连到同个语句, 这样你可以覆盖一个小的范围。如果你想要根据任意范围或非常量表达式进行选择, 你只能用 if/else 链。

正文完