2. do/while语句

do/while语句的语法是:

语句 → do 语句 while (控制表达式);

while语句先测试控制表达式的值再执行循环体,而do/while语句先执行循环体再测试控制表达式的值。如果控制表达式的值一开始就是假,while语句的循环体一次都不执行,而do/while语句的循环体仍然要执行一次再跳出循环。其实只要有while循环就足够了,do/while循环和后面要讲的for循环都可以改写成while循环,只不过有些情况下用do/whilefor循环写起来更简便,代码更易读。上面的factorial也可以改用do/while循环来写:

  1. int factorial(int n)
  2. {
  3. int result = 1;
  4. int i = 1;
  5. do {
  6. result = result * i;
  7. i = i + 1;
  8. } while (i <= n);
  9.  
  10. return result;
  11. }

写循环一定要注意循环即将结束时控制表达式的临界条件是否准确,上面的循环结束条件如果写成i < n就错了,当i == n时跳出循环,最后的结果中就少乘了一个n。虽然变量名应该尽可能起得有意义一些,不过用ijk给循环变量起名是很常见的。