兩段代碼僅花括號位置不同,輸出結果截然不同。
// 版本 1:內層 if 無大括號,外層 if 包含換行語句
if (i % 3 != 0) {
if (j % 10 == 0) cout << endl; // 屬於外層 if
}
// 版本 2:內層 if 有大括號,外層 if 僅包含空語句或單獨語句
if (i % 3 != 0)
if (j % 10 == 0) cout << endl; // 仍屬於外層 if,但縮進誤導
// 實際第二張圖顯示:外層 if 無大括號,內層 if 有大括號,導致換行執行兩次
if 後不加大括號時,僅緊隨其後的一條語句受其控制。else 總是與最近的未匹配 `if` 配對(悬空 else 問題)。永遠使用大括號,即使只有一條語句:
if (condition) {
statement;
}
避免因縮進誤導、維護時增刪行導致邏輯錯誤。現代編碼規範(Google C++、C++ Core Guidelines)均強制要求。