什麼是死循環?「循環一次不再循環」還是「不斷循環」?本文給出準確定義、特徵及最簡代碼示例,消除新手誤區。
死循環(Infinite Loop):循環條件永遠為真,導致循環體持續執行、無法正常退出的循環結構。
true(或無條件)break、return 或拋出異常等退出機制// 經典死循環
while (true) {
// 業務邏輯
// 缺少 break 或退出條件
}
// for 變體
for (;;) {
// ...
}
// 常見錯誤:條件變量未更新
int i = 0;
while (i < 10) {
System.out.println(i);
// 忘記 i++,導致永遠 true
}
「循環一次不再循環是死循環」 ❌ 錯誤,這是正常循環結束。
「死循環必然導致內存溢出」 ❌ 錯誤,僅當循環體持續創建對象且不可回收時才會 OOM。
while (running) { acceptRequest(); }while (true) { poll(); sleep(1000); }while (true) { showMenu(); handleInput(); }關鍵在於主動控制退出條件,而非被動陷入無限執行。