2. do/while語句

do/while語句的語法是:

語句 → do 語句 while (控製表達式);

while語句先測試控製表達式的值再執行循環體,而do/while語句先執行循環體再測試控製表達式的值。如果控製表達式的值一開始就是假,while語句的循環體一次都不執行,而do/while語句的循環體仍然要執行一次再跳出循環。其實只要有while循環就足夠了,do/while循環和後面要講的for循環都可以改寫成while循環,只不過有些情況下用do/whilefor循環寫起來更簡便,代碼更易讀。上面的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。雖然變數名應該儘可能起得有意義一些,不過用ijk給循環變數起名是很常見的。