首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

《C 程序設計語言》Switch 語句中 "one or more" 的真實含義

     編輯:程式設計綜合問答

原文困惑

K&R 《C 程序設計語言》第 3.4 節指出:Each case is labeled by one or more integer-valued constants or constant expressions. 讀者誤以為單個 `case` 標簽可包含多個常量值,實際不然。

正確解讀

  • Labeled ≠ Multiple Values:此處 "labeled" 是「打標簽」之意,即每個 `case` 后跟一個常量表達式作為標簽,如 `case 1:`、`case 2:`。
  • One or More Labels:一條語句可被多個 `case` 標簽共享,例如:
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        vowel_count++;
        break;
    
    這就是 "one or more" 的真實場景——多個標簽指向同一代碼塊。
  • Constant Expression 要求:標簽必須是整型常量表達式(編譯期可確定),不能是變量。

總結

C 語言 `switch` 不支持範圍判斷(如 `case 1..10:`),每個 `case` 只能對應一個離散值;若需合並處理,須堆疊多個 `case` 標簽。

K&R C 語言 switch case 標簽 one or more 含義解析,多標簽共享代碼塊示例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved