民國111年 第1梯次 電腦硬體裝修丙級 學科

第42題

C/C++ 語言指令switch 的流程控制變數「不可以」使用何種資料型態?

題目

C/C++ 語言指令switch 的流程控制變數「不可以」使用何種資料型態?

  1. (1) double
  2. (2) byte
  3. (3) int
  4. (4) cha r

官方答案

(1) double

解析

switch 的流程控制運算式必須是整數型別(integral type),編譯器會將其值轉為整數後,再與各 case 標籤比對。int、char、byte、short、long 及列舉型別都屬於整數家族,因此可以放在 switch 括號內。double 是浮點數,帶有小數部分,無法精確對應到離散的 case 常數值,C/C++ 標準明文禁止,編譯時會出現型別錯誤。若真的要以浮點值判斷,應改用 if-else 搭配誤差範圍比較。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料