++n(前綴):先遞增,再取值參與運算。n++(後綴):先取值,再遞增,原值參與運算。int n, iSum = 0;
for (n = 0; n++ < 2; ) ; // 空迴圈本體
iSum += n;
printf("n=%d, iSum=%d\n", n, iSum);
| 迴圈次數 | 判斷條件 n++ < 2 | 判斷用值 | 判斷後 n | 迴圈結束後 n |
|---|---|---|---|---|
| 1 | 0 < 2 → true | 0 | 1 | 3 |
| 2 | 1 < 2 → true | 1 | 2 | |
| 3 | 2 < 2 → false | 2 | 3 |
迴圈結束時 n = 3,iSum = 0 + 3 = 3。
輸出:n=3, iSum=3
++n < 2| 迴圈次數 | 判斷條件 ++n < 2 | 判斷用值 | 迴圈結束後 n |
|---|---|---|---|
| 1 | 1 < 2 → true | 1 | 2 |
| 2 | 2 < 2 → false | 2 |
輸出:n=2, iSum=2
for 第三欄或迴圈本體首行。for (n = 0; n < 2; n++) —— 清楚、無歧義、編譯器優化最好。while:while (n++ < 2) 仍建議拆成兩行:while (n < 2) { ... n++; }。