for 循环

  本章介绍的最后一类循环是 for 循环。这类循环可以执行指定的次数,并维护它自己的计数器。要定义 for 循环,需要下列信息:

  1. 初始化计数器变量的一个起始值。
  2. 继续循环的条件,它应涉及计数器变量。
  3. 在每次循环的最后,对计数器变量执行一个操作。

  例如,如果要在循环中,使计数器从 1 递增到 10,递增量为 1, 则起始值为 1,条件是计数器小于或等于 10,在每次循环的最后,要执行的操作是给计数器加 1。

  这些信息必须放在 for 循环 的结构中,如下所示:

  1. for (<initializeation>; <condition>; <operation>)
  2. {
  3. <code to loop>
  4. }

  它的工作方式与下述 while 循环 完全相同:

  1. <initialization>
  2. while (<condition>)
  3. {
  4. <code to loop>
  5. <operation>
  6. }

  但 for 循环 的格式使代码更便于阅读,因为其语法是在一个地方包括循环的全部规则,而不是把规则放在代码不同地方的几个语句中。

  前面使用 dowhile 循环 输出了从 1~10 的数字。下面看看如何使用 for 循环 完成这个任务:

  1. int i;
  2. for (i = 1; i <= 10; ++i)
  3. {
  4. Console.WriteLine("{0}", i);
  5. }

  计数器变量是一个整数 i,它的初始值是 1,在每次循环的最后递增 1。在每次循环过程中,把 i 的值写到控制台上。

  注意 ⚠️,当 i 的值为11时,将执行循环后面的代码。这是因为在 i 等于 10 的循环末尾,i 会递增为 11。这是在测试条件 i <= 10 之前发生的,此时循环结束。与 while 循环 一样,在第一次执行前,只在条件测定为 true 时才执行 for 循环,所以可能根本就不会执行循环中的代码。

  最后要注意的是,可将计数器变量声明为 for 语句 的一部分,重新编写上述代码,如下所示:

  1. for (int i = 1; i <= 10; ++i)
  2. {
  3. Console.WriteLine("{0}", i);
  4. }

  但如果这么做,就不能在循环外部使用变量 i(参见第6章中的 “变量作用域”一节)。