初學者編寫循環代碼時,程序進入死循環無法退出。經排查,根本原因是循環控制變量的初始化語句錯誤地放在了循環體內部。
while (condition) {
int n = 0; // 錯誤:初始化在循環內部,每次迭代都重置為 0
// ... 使用 n 的邏輯 ...
n++;
}
int n = 0; // 正確:初始化在循環外部
while (condition) {
// ... 使用 n 的邏輯 ...
n++;
}
n++)在迭代結束時銷毀,下一次迭代又從初始值開始。n < 10),因為 n 永遠被重置為 0,條件永遠成立,形成無限循環。// 錯誤
for (int i = 0; i < 10; i++) {
int j = 0; // 若 j 用於內層邏輯控制,同樣會重置
}
// 正確
int j = 0;
for (int i = 0; i < 10; i++) {
// 使用 j
}
循環控制變量必須在循環外部初始化,確保其值在迭代間保持並累積變化。這是 C/C++/Java 等語言初學者最易犯的低級錯誤之一,養成良好的變量聲明習慣可有效避免。