- PEVR虛擬現(xiàn)實編輯平臺設計與實現(xiàn)精析
- 浙江優(yōu)創(chuàng)信息技術有限公司
- 1705字
- 2024-08-01 15:58:35
2.1.2 循環(huán)語句
循環(huán)語句可以實現(xiàn)一個程序模塊的重復執(zhí)行,它對于簡化程序、更好地組織算法有著重要的意義。C#提供了四種循環(huán)語句,分別適用于不同的情形:while語句、do-while語句、for語句、foreach語句。
2.1.2.1 while語句
while語句有條件地將內嵌語句執(zhí)行0遍或若干遍,語句的格式為

它的執(zhí)行順序是:
1)計算布爾表達式boolean-expression的值。
2)當布爾表達式的值為真時,執(zhí)行內嵌語句embedded-statement一遍,程序轉至第1)步。
3)當布爾表達式的值為假時,while循環(huán)結束。
下面來看一個簡單的例子,該例在數(shù)組中查找一個指定的值,如找到就返回數(shù)組下標,否則返回并報告。
程序清單 2-3:

while語句中允許使用break語句結束循環(huán),執(zhí)行后續(xù)語句;也可以用continue語句來停止內嵌語句的執(zhí)行,繼續(xù)進行while循環(huán)。
我們使用下面的程序片段來計算一個整數(shù)x的階乘值:

2.1.2.2 do-while語句
do-while語句與while語句不同的是:它將內嵌語句執(zhí)行至少一遍。語句的格式為

它按如下順序執(zhí)行:
1)執(zhí)行內嵌語句embedded-statement一遍。
2)計算布爾表達式boolean-expression的值,為true則回到第1)步,為false則終止do循環(huán)。在do-while循環(huán)語句同樣允許用break語句和continue語句實現(xiàn)與while語句中相同的功能。
我們看一下如何使用do-while循環(huán)來實現(xiàn)求整數(shù)的階乘:

2.1.2.3 for語句
for語句是C#中使用頻率最高的循環(huán)語句,在事先知道循環(huán)次數(shù)的情況下使用for語句是比較方便的。for語句的格式為

其中,initializer、condition、iterator這三項都是可選項:initializer為循環(huán)控制變量做初始化,循環(huán)控制變量可以有一個或多個(用逗號隔開);condition為循環(huán)控制條件,也可以有一個或多個語句;iterator按規(guī)律改變循環(huán)控制變量的值。應注意初始化循環(huán)控制條件和循環(huán)控制都是可選的。如果忽略了條件,就會產(chǎn)生死循環(huán),要用跳轉語句break或goto才能退出。

for語句執(zhí)行順序如下:
1)按書寫順序將initializer部分(如果有的話)執(zhí)行一遍,為循環(huán)控制變量賦初值。
2)測試condition(如果有的話)中的條件是否滿足。
3)若沒有condition項或條件滿足,則執(zhí)行內嵌語句一遍,按iterator改變循環(huán)控制變量的值回到第2)步執(zhí)行。
4)若條件不滿足則for循環(huán)終止。
下面的例子非常簡單,打印數(shù)字1到9,但它卻清楚地顯示出了for語句是怎樣工作的:

for語句可以嵌套使用,幫助我們完成大量重復性、規(guī)律性的工作。
下面的例子用于打印楊輝三角形:
程序清單 2-4:


運行程序的結果為

還以求整數(shù)的階乘為例,代碼可以這樣寫:

同樣可以用break和continue語句來和循環(huán)判斷符合語句中的邏輯表達式配合使用達到控制循環(huán)的目的。仍然以打印數(shù)字為例,如果要求打印除7以外的0到9之間的數(shù)字,只要在for循環(huán)執(zhí)行到7時,跳過打印語句就可以了。

2.1.2.4 foreach語句
foreach語句是在C#中新引入的,C和C++中沒有這個語句,而Visual Basic的程序員應該對它不會陌生,它表示收集一個集合中的各元素,并針對各個元素執(zhí)行內嵌語句。語句的格式為

其中,類型(type)和標識符(identifier)用來聲明循環(huán)變量表達式(expression)對應集合,每執(zhí)行一次內嵌語句,循環(huán)變量就依次取集合中的一個元素,代入其中。在這里,循環(huán)變量是一個只讀型局部變量,如果試圖改變它的值或將它作為一個ref或out類型的參數(shù)傳遞,都將引發(fā)編譯時錯誤。
foreach語句中的expression必須是集合類型,如果該集合的元素類型與循環(huán)變量類型不一致,則必須將集合中的元素類型顯式轉換為循環(huán)變量元素類型。
集合表示一組相同或相似的數(shù)據(jù)項總的描述。那么在C#中究竟什么樣的類型算是集合類型呢?我們從語法上給出集合類型的定義:
1)該類型必須支持一個形為GetEnumerator的公有的非靜態(tài)方法,該方法的返回類型為結構類或接口。
2)形為GetEnumerator的方法,返回的結構類或接口應當包含一個公有的非靜態(tài)的方法MoveNext,該方法的返回類型為布爾型。
3)形為GetEnumerator的方法,返回的結構類或接口應當包含一個公有的非靜態(tài)的屬性Current,該屬性可以讀出。
如果一個類型同時滿足以上三個條件,該類型稱為集合類型,Current屬性的類型叫作該集合類型的元素類型。
我們姑且不論集合類型的具體形式,只從foreach語句的使用角度舉一個例子。假設Prime是一個滿足條件的集合類型,它的元素類型為1000以內的質數(shù),MyInt是我們自定義的一個類型,其范圍為200到300之間的整數(shù)。下面這段程序用于在屏幕上顯示出從200到300之間的所有質數(shù):
程序清單 2-5:

順便說一句,數(shù)組類型是支持foreach語句的。對于一維數(shù)組執(zhí)行順序是從下標為0的元素開始,一直到數(shù)組的最后一個元素。對于多維數(shù)組元素,下標的遞增是從最右邊那一維開始的,依此類推。同樣break和continue可以出現(xiàn)在foreach語句中,功能不變。
- Enhancing Microsoft Content Management Server with ASP.NET 2.0
- Instant Vert.x
- Photoshop CS6實戰(zhàn)基礎培訓教程(全視頻微課版)
- Illustrator 2024從入門到精通
- 中文版CorelDRAW X6基礎培訓教程(第2版)
- Excel公式、函數(shù)與圖表案例實戰(zhàn)從入門到精通(視頻自學版)
- 短視頻剪輯基礎與實戰(zhàn)應用(剪映電腦版)
- Getting Started with Oracle BPM Suite 11gR1 – A Hands/On Tutorial
- Origin 2022科學繪圖與數(shù)據(jù)分析(高級應用篇)
- Flash CS5動畫設計教程
- Cinema 4D/After Effects印象 影視包裝技法精解基礎篇
- AutoCAD 2019中文版完全自學手冊(標準版)
- AI繪畫大師:Stable Diffusion快速入門與實戰(zhàn)技巧
- Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#
- 中文版3ds Max 2016基礎教程