VS 編輯器中,第一個 for (int i=1; i<=5; i++) 關鍵字顏色正常、字元間有空格;第二個 for(int k=1;k<=5;k++) 字元緊湊且報錯。
C++ 語法要求 for 陳述式後必須跟隨一個「陳述式」 (statement) 作為迴圈主體。
第一個 for 後面若有大括號 { ... } 或單一陳述式,編譯器識別為完整結構,IntelliSense 正常著色。
第二個 for 若前一個迴圈缺少主體,編譯器會將其視為外層迴圈的主體,導致語法樹錯誤,進而影響高亮與錯誤標記。
// 錯誤:外層 for 缺少主體
for (int i = 1; i <= 5; i++)
for (int k = 1; k <= 5; k++) // 被視為外層主體,但語意錯誤
;
// 正確:每個 for 都有明確主體
for (int i = 1; i <= 5; i++) {
// 外層主體
for (int k = 1; k <= 5; k++) {
// 內層主體
}
}
// 或單行陳述式
for (int i = 1; i <= 5; i++)
for (int k = 1; k <= 5; k++)
doSomething(i, k); // 此行為內層主體,外層主體為整個內層 for 陳述式
Ctrl+K, Ctrl+D 格式化文件,觀察縮排是否符合預期。