7.6.3 for循环
for语句一般用于循环过程,在循环开始时需要初始化,然后开始循环执行,当其中的布尔表达式返回false时退出,否则会造成死循环。
for循环的语法为:
for(变量初始化;布尔表达式;迭代表达式){
//语句或语句块
}
其中,“变量初始化”、“布尔表达式”、“迭代表达式”这三项都是可选项。“变量初始化”为循环控制变量做初始化,循环控制变量可以有一个或多个(用逗号隔开,这意味着控制变量的类型是一样的);“布尔表达式”为循环控制条件,也可以有一个或多个语句;“迭代表达式”按规律改变循环控制变量的值,例如可以递增或者递减,如图7-8所示。
图 7-8 for循环
注意,“变量初始化”、“布尔表达式”和“迭代表达式”都是可选的。如果忽略了条件,就可能产生一个死循环,要用跳转语句(break、return或goto)才能退出。如代码清单7-12所示。
代码清单7-12 省略了“变量初始化”、“布尔表达式”和“迭代表达式”的for循环
1 using System;
2
3 namespace ProgrammingCSharp4
4{
5 public class StatementSample
6{
7 static void Main()
8{
9 int i=0;
10 for(;)
11{
12 Console.WriteLine(i++);
13 if(i>6)
14{
15 break;
16}
17}
18}
19}
20}
如代码清单7-12所示,第10行的for循环省略了“变量初始化”、“布尔表达式”和“迭代表达式”,这就造成了一个没有出口的循环,即常说的死循环。为避免这种情况,引入了变量i,通过i的自增以及当i值大于6的时候,通过break语句让循环终止,从而避免了死循环的发生。
上述代码输出如下:
0
1
2
3
4
5
6
接下来,我们来看一个标准的for循环的写法,如代码清单7-13所示:
代码清单7-13 标准的for循环写法
1 using System;
2
3 namespace ProgrammingCSharp4
4{
5 public class StatementSample
6{
7 static void Main()
8{
9 for(int i=0;i<10;i++)
10{
11 Console.WriteLine(i);
12}
13}
14}
15}
输出如下:
0
1
2
3
4
5
6
7
8
9