許多C++初學者在練習循環控制時,會遇到「列出100到200之間能被3整除的數字」這類經典題目。雖然邏輯看似簡單,但若對循環結構與條件判斷理解不透徹,極易寫出語法錯誤或邏輯錯誤的代碼,導致程序無法正常運行或輸出結果錯誤。
以下是一個典型的錯誤示例:
#include <stdio.h>
int main() {
int c;
for(c=1; c<=200; c++) {
c = c * 3;
if(c >= 200) continue;
printf("%d", c);
}
return 0;
}
這段代碼存在兩個關鍵問題:
c 進行乘法運算(c = c * 3),導致循環失去對迭代次數的控制,極易陷入死循環或跳過預期數值。continue 前缺少大括號包裹的代碼塊,且邏輯判斷順序顛倒,導致輸出語句可能永遠不被執行。要解決此問題,應遵循以下步驟:
% 判斷能否被 3 整除(i % 3 == 0)。#include <stdio.h>
int main() {
int i;
for(i = 100; i <= 200; i++) {
if(i % 3 == 0) {
printf("%d ", i);
}
}
return 0;
}
也可以優化循環起始值,直接從 102(100 以上第一個 3 的倍數)開始,步長設為 3:
for(i = 102; i <= 200; i += 3) {
printf("%d ", i);
}
if、for 等語句的作用域混淆。掌握這些基礎概念,能幫助初學者避開常見陷阱,編寫出結構清晰、邏輯正確的 C++ 程序。