C# for语句的格式为:
for(initializer;condition;iterator)embedded-statement
其中initializer,condition,iterator这三项都是可选项。initializer为循环控制变量做初始化,循环控制变量可以有一个或多个(用逗号隔开);conditon为循环控制条件,也可以有一个或多个语句;iterator按规律改变循环控制变量的值。
请注意,初始化、循环控制条件和循环控制都是可选的。如果忽略了条件,你就可能产生一个死循环,要用跳转语句(break或goto)才能退出。
- for(;;){
- break; //由于某些原因
- }
C# for语句执行次序如下:
(1)按书写顺序将initializer部分(如果有的话)执行一遍,为循环控制变量赋初值;
(2)测试condition(如果有的话)中的条件是否满足;
(3)若没有conditon项或条件满足,则执行内嵌语句一遍,按iterator改变循环控制变量的值,回到第二步执行;
(4)若条件不满足,则for循环终止。
下面的例子非常简单,打印数字从1到9,但它却清楚地显示出了for语句是怎样工作的。
- for(int i=0;i<10;i++)
- Console.WriteLine(i);
C# for语句可以嵌套使用,帮助我们完成大量重复性、规律性的工作。
下面的例子用于打印杨辉三角形。
程序清单8-4:
- using System;class Test
- { public static void Main()
- { int[,] a=new int[5,5];
- a[0,0]=1;
- for(int i=1;i<=5;i++)
- {
- a[i,0]=1;
- a[i,i]=1;
- for(int j=1;j〈i;j++){
- a[i,j]=a[i-1,j-1]+a[i-1,j];
- } }
- for(int i=0;i〈5;i++)
- {
- for(int j=0;j〈i;j++)
- {
- Console.WriteLine("{0}",a[i][j]) } Console.WriteLine();
- } }}
运行程序的结果为:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1还以求整数的阶乘为例,代码我们可以这样写:
- for(long y=1;x>0;x--)
- y*=x;
同样,可以用break和continue语句,来和循环判断语句中的逻辑表达式来配合使用,达到控制循环的目的。
仍然以打印数字为例,如果要求打印除7以外的0到9的数字,只要在for循环执行到7时,跳过打印语句就可以了。
- for(int i=0;i<10;i++){
- if(i==7) continue;
- Console.WriteLine(i);
- }
- }
【编辑推荐】