do/while
語句的語法是:
語句 → do 語句 while (控製表達式);
while
語句先測試控製表達式的值再執行循環體,而do/while
語句先執行循環體再測試控製表達式的值。如果控製表達式的值一開始就是假,while
語句的循環體一次都不執行,而do/while
語句的循環體仍然要執行一次再跳出循環。其實只要有while
循環就足夠了,do/while
循環和後面要講的for
循環都可以改寫成while
循環,只不過有些情況下用do/while
或for
循環寫起來更簡便,代碼更易讀。上面的factorial
也可以改用do/while
循環來寫:
int factorial(int n) { int result = 1; int i = 1; do { result = result * i; i = i + 1; } while (i <= n); return result; }
寫循環一定要注意循環即將結束時控製表達式的臨界條件是否準確,上面的循環結束條件如果寫成i < n
就錯了,當i == n
時跳出循環,最後的結果中就少乘了一個n
。雖然變數名應該儘可能起得有意義一些,不過用i
、j
、k
給循環變數起名是很常見的。