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);
}
}