梁宇琪 王冰 苗娟
循環(huán)結(jié)構(gòu)是程序設(shè)計中一種很重要的結(jié)構(gòu),其特點是:在給定條件成立的情況下,反復(fù)執(zhí)行某段程序,直到條件不成立為止。給定的條件稱為循環(huán)條件,反復(fù)執(zhí)行的程序段稱為循環(huán)體。C#語言提供了多種循環(huán)語句,包括for語句、while語句、do-while語句、foreach語句、break語句、continue語句等;此文僅對for語句、while語句、do-while語句、foreach語句進行比較,使學(xué)習(xí)者明確它們之間的區(qū)別,以便使用循環(huán)結(jié)構(gòu)時進行選用。
一、for循環(huán)
for循環(huán)語句是c#中使用最廣泛,最靈活的一種循環(huán)語句。它不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況。
首先我們來介紹一下for語句的基本格式與語法:
for(①初始化表達式;②循環(huán)條件表達式;④變量控制表達式)
{
③循環(huán)體
}
執(zhí)行過程如下:①初始化表達式:一般為賦值表達式,為循環(huán)控制變量賦初值。只在第一次循環(huán)開始時執(zhí)行;②循環(huán)條件表達式:一般為邏輯表達式,是用來控制循環(huán)是否繼續(xù)的條件。當(dāng)表達式的值為“真”時,循環(huán)繼續(xù)執(zhí)行轉(zhuǎn)向步驟③;當(dāng)表達式的值為“假”時,跳過循環(huán)體③,循環(huán)結(jié)束;③循環(huán)體:反復(fù)執(zhí)行的代碼段;④變量控制表達式:一般為賦值表達式,為循環(huán)控制變量增量或減量。執(zhí)行完后,轉(zhuǎn)向步驟②,循環(huán)繼續(xù)執(zhí)行。
使用for循環(huán)時需要注意幾點:
①在循環(huán)結(jié)構(gòu)中,一定要有使循環(huán)趨向結(jié)束的操作。以上程序代碼中,語句i++;使i不斷增1,當(dāng)i>5時,循環(huán)結(jié)束。如果沒有i++;這一語句,i的值始終不變,循環(huán)將無限進行,即為死循環(huán)。
②for后面括號內(nèi)的3個表達式之間用兩個“;”隔開,3個表達式的內(nèi)容可以為空,但”;”不能省略。
③for后面括號后沒有“;”,緊接“{}”,如在for后的“()”后緊接“;”,則表示循環(huán)體為空。
④當(dāng)循環(huán)體只有一個子句時“{}”可以省略。
二、while循環(huán)
While語句的作用是判斷一個條件表達式,以便決定是否應(yīng)當(dāng)進入和執(zhí)行循環(huán)體,當(dāng)滿足該條件時進入循環(huán),不滿足該天劍時則不再執(zhí)行循環(huán)。
基本格式與語法:
while(①條件表達式)
{
②循環(huán)體
}
執(zhí)行過程如下:①條件表達式:一般為邏輯表達式,是用來控制循環(huán)是否繼續(xù)的條件。當(dāng)表達式的值為“真”時,循環(huán)繼續(xù)執(zhí)行轉(zhuǎn)向②;當(dāng)表達式的值為“假”時,跳過循環(huán)體②,while循環(huán)結(jié)束;②循環(huán)體:反復(fù)執(zhí)行的代碼段。執(zhí)行完后,轉(zhuǎn)向步驟①,循環(huán)繼續(xù)執(zhí)行。
使用while循環(huán)時需要注意幾點:
①在循環(huán)體中,一定要有使循環(huán)趨向結(jié)束的語句。以上程序代碼中,語句i++;使i不斷增1,當(dāng)i>5時,循環(huán)結(jié)束。如果沒有i++;這一語句,i的值始終不變,循環(huán)將無限進行,即為死循環(huán)。
②如果循環(huán)體只包含一個語句,可以省略{}。
三、do..while循環(huán)
基本格式與語法:
do
{
①循環(huán)體
}while(②條件表達式);
執(zhí)行過程如下:①循環(huán)體:反復(fù)執(zhí)行的代碼段。當(dāng)流程到達do后,立即執(zhí)行循環(huán)體,循環(huán)體至少執(zhí)行一次。完后轉(zhuǎn)向while后的條件表達式②;②條件表達式:一般為邏輯表達式,是用來控制循環(huán)是否繼續(xù)的條件。當(dāng)表達式的值為“真”時,循環(huán)繼續(xù)執(zhí)行轉(zhuǎn)向①;當(dāng)表達式的值為“假”時,循環(huán)結(jié)束。
使用do...while循環(huán)時需要注意幾點:
①在循環(huán)體中,一定要有使循環(huán)趨向結(jié)束的語句。以上程序代碼中,語句i++;使i不斷增1,當(dāng)i>5時,循環(huán)結(jié)束。如果沒有i++;這一語句,i的值始終不變,循環(huán)將無限進行,即為死循環(huán)。
②和while語句的相同點是:都是在while后表示循環(huán)條件;循環(huán)體都在{}中。和while語句的區(qū)別是:語法結(jié)構(gòu)上do..while結(jié)構(gòu)do開始,“;”結(jié)束;do..while結(jié)構(gòu)不管一開始循環(huán)條件是否滿足都先執(zhí)行了循環(huán)體,循環(huán)體至少執(zhí)行一次。
四、foreach語句
foreach循環(huán)語句可以遍歷集合中的元素。foreach語句的語法格式如下:
foreach(類型變量in表達式)
{
循環(huán)體
}
其中:
類型:變量的類型
變量:能被集合元素賦值的循環(huán)變量,是一個只讀的局部變量。
表達式:對象集合或數(shù)組表達式。集合元素的類型必須可以顯式轉(zhuǎn)換為變量類型。
執(zhí)行過程如下:①變量在表達式中遍歷時,循環(huán)體反復(fù)執(zhí)行。
五、綜合對比
經(jīng)過對四種循環(huán)結(jié)構(gòu)的介紹我們發(fā)現(xiàn):①foreach循環(huán)語句通過遍歷集合中的元素進行循環(huán),其他三種都是通過循環(huán)變量控制循環(huán);②在這三種循環(huán)結(jié)構(gòu)中只有for循環(huán)明確的給出了循環(huán)變量定義及循環(huán)變量控制語句,因此使用更為靈活,還有更好的可讀性;③do...while和while語句的相同點是:都是在while后表示循環(huán)條件;循環(huán)體都在{}中。和while語句的區(qū)別是:語法結(jié)構(gòu)上do..while結(jié)構(gòu)do開始,“;”結(jié)束;do..while結(jié)構(gòu)不管一開始循環(huán)條件是否滿足都先執(zhí)行了循環(huán)體,循環(huán)體至少執(zhí)行一次。
至此,以上四種循環(huán)結(jié)構(gòu)我們就可以根據(jù)需要靈活選用了,但有時我們希望在循環(huán)條件成立的情況下提前跳出循環(huán),這就需要用到break語句了;continue作用為結(jié)束本次循環(huán),即跳過循環(huán)體中尚未執(zhí)行的語句,繼續(xù)該循環(huán)的下一輪。