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

C++ 大括號不匹配導致編譯錯誤:一個典型的 else 空塊陷阱

     編輯:程式設計綜合問答

錯誤現象

編譯器報錯:expected unqualified-id before 'return'、expected declaration before '}' token。代碼中 else 後跟了一對空大括號 {},導致後續 if (exponent < 0) 脫離了主流程,最後的 return 0; 被視為函數外語句。

修正代碼

else
{
    // 此處原為空塊,應刪除或填入邏輯
}
if (exponent < 0)
    std::cout << "Exponent can't be smaller than 0." << std::endl;
else
{
    for (int i = 1; i <= exponent; i++)
        result = result * base;
    std::cout << "the " << exponent << " power of " << base << " is " << result;
    std::cout << std::endl;
}

避坑指南

  • 使用編輯器的「括號匹配高亮」功能(VS: Ctrl+],VS Code: Shift+Alt+\\)。
  • 養成「先寫一對大括號再填代碼」的習慣。
  • 啟用編譯器警告 -Wextra / /W4,可提前發現可疑的空塊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved