switch-case
switch-case
在C++中,可視為一種優雅的if-else-if
同義於
if-else
無法轉成switch-case
的情況
if-else
無法轉成switch-case
的情況Expression
的結果會直接與case
後面的「結果」做比對,看看是否相同。在此必須注意,無法比對float
、double
這種浮點數,很不幸的是浮點數本質上代表著「誤差」,跟據IEEE754的定義,也是存在著誤差容訊範圍,又因為各家的complier的不同,浮點數的誤差又略為不同。
所以,若要使用浮點數做if-else
的判斷時,建議使用範圍(>
, >=
, <
, <=
),而非==
,比較不會造成無法預期的情況發生。
特別注意break
break
在C++中,不用break跳出時,會緊接著下一個case執行,在這種情況,必須寫註解說明。這種情況,儘可能的避免。
case
排序的建議:
case
排序的建議:由上到下
依字母或數字順序(A~Z, 0~9)
先置入正常,再置入例外(正常~例外)
先置入常見,再置入不常見(常見~不常見)
default
的妙用
default
的妙用要用所有的case包含所有的情況,這時default就要拿來處理「絕對不應該發生」的情況。
參考自《Code Complete2》
Last updated
Was this helpful?