代碼:
for(i=0; i<5, puts("**"); i++);
現象:無限列印 **。
expr1, expr2 依序執行,**整個表達式值為最後一項(puts("**") 的回傳值)**。puts 成功回傳非負整數(通常是列印字元數),在 C 語言中視為 true。i<5 為 false 後,仍評估 puts("**") 為 true → 迴圈持續。將列印移入迴圈主體:
for(i=0; i<5; i++) {
puts("**");
}
或用 while 明確控制:
i=0;
while(i<5 && puts("**")>=0) i++;