for語句是C#中使用頻率最高的循環語句。在事先知道循環次數的情況下,使用for開戶名是比較方便的。for語句的格式為:
for(initializer;condition;iterator)embedded-statement
其中initializer,condition,iterator這三項都是可選項。initializer為循環控制變量做初始化,循環控制變量可以有一個或多個(用逗號隔開);conditon為循環控制條件,也可以有一個或多個語句;iterator按規律改變循環控制變量的值。
請注意,初始化、循環控制條件和循環控制都是可選的。如果忽略了條件,你就可能產生一個死循環,要用跳轉語句(break或goto)才能退出。
for(;;){
break; //由於某些原因
}
for語句執行次序如下:
(1)按書寫順序將initializer部分(如果有的話)執行一遍,為循環控制變量賦初值;
(2)測試condition(如果有的話)中的條件是否滿足;
(3)若沒有conditon項或條件滿足,則執行內嵌語句一遍,按iterator改變循環控制變量的值,回到第二步執行;
(4)若條件不滿足,則for循環終止。
下面的例子非常簡單,打印數字從1到9,但它卻清楚地顯示出了for語句是怎樣工作的。
for(int i=0;i<10;i++)
Console.WriteLine(i);
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(); } } } 運行程序的結果為: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 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);
}
}