初學者編寫金字塔程序時,常在 for 循環後誤加分號,導致循環體空執行。錯誤代碼片段:
for(n=1; n<=4; n++); // ← 這裡的分號是禍根
{
for(i=1; i<4-n; i++); // ← 這裡也有
printf(" ");
...
}
for(...); 等價於 for(...) { },大括號內的代碼不再受循環控制,僅執行一次。
for(n=1; n<=4; n++) { // 刪除分號
for(i=1; i<4-n; i++) { // 刪除分號
printf(" ");
}
for(j=1; j<=k+3; j++) { // 同理
k=k+3;
printf("*");
}
printf("\n");
}
statement with no effect 即提示無效語句。{} 包裹單語句循環體。