基礎知識 | 每日一練(173)

  • 2019 年 11 月 12 日
  • 筆記

基礎知識練習

士人有百折不回之真心,才有萬變不窮之妙用。立業建功,事事要從實地著腳,若少慕聲聞,便成偽果;講道修德,念念要從虛處立基,若稍計功效,便落塵情。 ——菜根譚

讀者:是否有根據字元串做切換的方法?

小林:沒有直接的方法。有些時候, 更適合使用一個單獨的函數以映射字元串到整數程式碼, 然後根據整數程式碼做切換。否則, 你當然也可以使用 strcmp() 和傳統的if/else 鏈。

讀者:是否有使用非常量 case 標誌的方法 (例如範圍或任意的表達式)?

小林:沒有。最初設計 switch 語句就是為編譯器能簡單的做轉換, 所以 case 標誌被限制在單個、整形、常量的表達式。如果你不介意詳述的列出所有的情況, 你可以把幾個 case 標誌連到同個語句, 這樣你可以覆蓋一個小的範圍。如果你想要根據任意範圍或非常量表達式進行選擇, 你只能用 if/else 鏈。

Tags: