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

C/C++ else if 後多加分號導致邏輯斷裂:圖解錯誤與修正

     編輯:程式設計綜合問答

錯誤代碼片段(圖中紅框):

if (condition1) {
    ...
} else if (condition2); {  // ← 這裡的分號是禍根
    ...
}

錯誤本質

else if (cond); 等價於:

else if (cond) {
    ; // 空語句
}
// 後面的 { ... } 變成獨立代碼塊,無條件執行

修正

else if (condition2) {  // 刪除分號
    ...
}

預防技巧

  • 養成「if/else 必加大括號」習慣,即使只有一條語句。
  • 啟用編譯器警告 -Wempty-body (GCC/Clang) 或 /Wall (MSVC) 捕獲空語句。
  • 代碼格式化工具自動修正此類語法。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved