C#-程序設(shè)計教程第3章_第1頁
C#-程序設(shè)計教程第3章_第2頁
C#-程序設(shè)計教程第3章_第3頁
C#-程序設(shè)計教程第3章_第4頁
C#-程序設(shè)計教程第3章_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第3章 流程控制語句 10 七月 2022第3章 流程控制語句 3.1 程序的三種基本結(jié)構(gòu) 3.2 if語句 3.3 switch語句 3.4 while語句 3.5 dowhile語句 3.6 for語句 3.7 break和continue語句 程序的三種常用結(jié)果分別是:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在C#中,分支結(jié)構(gòu)采用條件語句實現(xiàn),循環(huán)結(jié)構(gòu)使用循環(huán)語句實現(xiàn)。 3.1.1 順序結(jié)構(gòu)順序結(jié)構(gòu)是指程序執(zhí)行過程中程序流程按語句順序依次執(zhí)行、不發(fā)生轉(zhuǎn)移的程序結(jié)構(gòu)。 3.1 程序的三種結(jié)構(gòu) 10 七月 20223.1.2 分支結(jié)構(gòu) 分支結(jié)構(gòu)體現(xiàn)了程序的判斷能力,在程序執(zhí)行中能根據(jù)某些條件是否成立,

2、從若干條語句或語句組中選擇一條或一組來執(zhí)行。 分支結(jié)構(gòu)有兩路分支結(jié)構(gòu)和多路分支結(jié)構(gòu),兩路分支結(jié)構(gòu)可用if語句實現(xiàn),多路分支結(jié)構(gòu)可用嵌套的if語句和switch語句實現(xiàn)。 3.1 程序的三種結(jié)構(gòu)1兩路分支在兩種可能的操作中按條件選取一個執(zhí)行的結(jié)構(gòu)稱為兩路分支結(jié)構(gòu)。2多路分支在多種可能的操作中按條件選取一個執(zhí)行的結(jié)構(gòu)稱為多路分支結(jié)構(gòu)。 3.1 程序的三種結(jié)構(gòu)3.1.3 循環(huán)結(jié)構(gòu) 在程序設(shè)計中,通常某些程序段需要重復(fù)執(zhí)行若干次,這樣的程序結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu)。 C#中控制循環(huán)結(jié)構(gòu)語句包括:while、do-while、for和foreach語句。循環(huán)結(jié)構(gòu)有兩種形式,即當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)。 3.

3、1 程序的三種結(jié)構(gòu)10 七月 20221當(dāng)型循環(huán)結(jié)構(gòu) 當(dāng)條件成立時重復(fù)執(zhí)行一個操作直到條件不成立為止的結(jié)構(gòu)。在圖3-4的流程圖中,當(dāng)條件B成立(為“真”)時,重復(fù)執(zhí)行S程序段,直到條件B不成立(為“假”)時才停止執(zhí)行S程序段,轉(zhuǎn)而執(zhí)行其他程序段。2直到型循環(huán)結(jié)構(gòu) 重復(fù)執(zhí)行一個操作,直到條件不成立為止的結(jié)構(gòu)。在圖3-5中,先執(zhí)行S程序段,再判斷條件B是否成立,若條件B成立(為“真”),再執(zhí)行S程序段,如此重復(fù),直到條件B不成立(為“假”)時停止執(zhí)行S程序段,轉(zhuǎn)而執(zhí)行其他程序段。 3.1 程序的三種結(jié)構(gòu) if語句是最常用的條件語句。它在條件成立時(也就是true時)執(zhí)行一些指定的操作,而在條件不成

4、立的時候(為false時)執(zhí)行另外一些操作。 if語句有3種形式:if、ifelse和ifelse if,通過它可以實現(xiàn)單分支、雙分支和多分支選擇結(jié)構(gòu)。 3.2 if語句 1用if語句實現(xiàn)單分支選擇結(jié)構(gòu)在C#語言中,用if語句實現(xiàn)單分支選擇結(jié)構(gòu)的語句格式及功能如下:語句格式:if (布爾表達(dá)式) 語句塊; 執(zhí)行過程:首先計算表達(dá)式的值,當(dāng)表達(dá)式的值為true時,執(zhí)行后面的語句,否則不執(zhí)行語句。3.2 if語句說明:(1)表達(dá)式通常用來表示條件,應(yīng)為一個布爾值;(2)表達(dá)式必須用“( )”括起來,括號不能省略;(3)語句只能是單個語句或復(fù)合語句,如果是復(fù)合的多條語句應(yīng)用“”和“”號把它們括起來,

5、使之成為語句塊。如果沒有,if的有效范圍為表達(dá)式后的第一條語句。10 七月 20223.2 if語句2用if語句實現(xiàn)雙分支選擇結(jié)構(gòu)在C#語言中,用if語句實現(xiàn)雙分支選擇結(jié)構(gòu)的語句格式及功能如下:語句格式:if (布爾表達(dá)式) 語句塊1 else 語句塊2 執(zhí)行過程:當(dāng)表達(dá)式的值為true時,執(zhí)行語句1,否則執(zhí)行語句2。3.2 if語句在C#語言中,用if語句實現(xiàn)多分支選擇結(jié)構(gòu)的語句格式及功能如下:語句格式為:if (布爾表達(dá)式1) 語句塊1 else if (布爾表達(dá)式2) 語句塊2 .else if (布爾表達(dá)式n-1) 語句塊n-1 else 語句塊n 3.2 if語句執(zhí)行過程:首先判斷表

6、達(dá)式1的值是否為true,如果為true,就執(zhí)行語句1,如果為false,則繼續(xù)判斷表達(dá)式2的值是否為true;如果表達(dá)式2的值為true,就執(zhí)行語句2;否則繼續(xù)判斷表達(dá)式3的值,依次類推,直到找到一個表達(dá)式的值為true并執(zhí)行后面的語句;如果所有表達(dá)式的值為false,則執(zhí)行else后面的語句n。 3.2 if語句4if語句的嵌套在if語句中又包含一個或多個if語句稱為if語句的嵌套。其一般格式為: if (布爾表達(dá)式1) if (布爾表達(dá)式2) 語句塊1 else 語句塊2 else if (布爾表達(dá)式3) 語句塊3 else 語句塊4 3.2 if語句if語句嵌套使用時,應(yīng)當(dāng)注意else

7、與if的的配對關(guān)系。配對的規(guī)則是:else總是與其前面最近的還沒有配對的if進(jìn)行配對,除非用花括號表示出其他選擇。例如:if (布爾表達(dá)式1) if (布爾表達(dá)式2) 語句塊1 else 語句塊2 等價于:if (布爾表達(dá)式1 ) if (布爾表達(dá)式2 ) 語句塊1 else 語句塊2 10 七月 2022 如果要改變這種約定,希望else與第一個if配對,則應(yīng)該用花括號構(gòu)成復(fù)合語句。例如:if (布爾表達(dá)式1 ) if (布爾表達(dá)式2 ) 語句塊1 else 語句塊2 此時,else與第一個if配對。10 七月 2022在C#語言中要實現(xiàn)多分支,還可以通過switch語句來實現(xiàn)。switch

8、語句的格式與功能如下。語句格式為:switch(表達(dá)式) case 常量表達(dá)式1:語句1; break; case 常量表達(dá)式2:語句2; break; . case 常量表達(dá)式:語句n; break; default:語句 n+1;break; 3.3 switch語句 執(zhí)行過程:首先計算表達(dá)式的值,然后依次將表達(dá)式的值與case后常量表達(dá)式1、常量表達(dá)式2、常量表達(dá)式n比較,若與某個case后面的常量表達(dá)式值相等,就執(zhí)行此case后面的語句,直到碰上break或者switch語句結(jié)束。break語句的作用就是中斷當(dāng)前的匹配過程跳出switch語句;如果沒有break語句,則匹配的過程會一直

9、持續(xù)到整個switch語句結(jié)束。若表達(dá)式的值與所有case后面的常量表達(dá)式的值都不相同,則執(zhí)行default后面的“語句n+1”,執(zhí)行后退出switch語句。10 七月 2022(1)條件表達(dá)式與常量表達(dá)式只能是整數(shù)類型、字符類型或枚舉類型表達(dá)式;(2)每個case后面的常量表達(dá)式的值必須互不相同,從而保證分支選擇的唯一性;(3)一個case后可有多個語句,程序自動順序執(zhí)行case后的所有語句;一個case后面也可以沒有任何語句。(4)default語句總是放在最后,default語句也可以缺省,當(dāng)default語句缺省后,如果switch后面的表達(dá)式值與任一常量表達(dá)式都不相等時,將不執(zhí)行任何

10、語句,直接退出switch語句。(5)從switch語句的執(zhí)行過程可知,任一switch語句均可用if條件語句來實現(xiàn),但并不是任何if條件語句均可用switch語句來實現(xiàn),這是由于switch語句限定了表達(dá)式的取值類型,而且switch語句也只能做“值是否相等”的判斷,不能在case語句中使用條件。10 七月 2022while語句實現(xiàn)的循環(huán)是當(dāng)型循環(huán),該類循環(huán)先測試循環(huán)條件再執(zhí)行循環(huán)體。while語句的格式及功能如下:語句格式:while (布爾表達(dá)式) 語句塊; 3.4 while語句 執(zhí)行過程:首先計算while后面括號內(nèi)表達(dá)式的值,當(dāng)表達(dá)式的值為true時則執(zhí)行循環(huán)體中的語句;然后再檢

11、查表達(dá)式的值,再執(zhí)行循環(huán),直到表達(dá)式值為false時結(jié)束循環(huán),執(zhí)行循環(huán)后面的語句。其特點是“先判斷,后執(zhí)行”10 七月 2022說明:(1)表達(dá)式稱為循環(huán)條件表達(dá)式,一般為關(guān)系表達(dá)式或邏輯表達(dá)式,必須用“( )”括起來;(2)語句稱為循環(huán)體,可以是單個或復(fù)合語句,復(fù)合語句應(yīng)該用花括號括起來;(3)通常進(jìn)入循環(huán)時,括號內(nèi)部的表達(dá)式值為true,但循環(huán)最終都要退出,因此在循環(huán)體中應(yīng)有使循環(huán)趨于結(jié)束的語句,即能夠使表達(dá)式的值由true變?yōu)閒alse的語句,否則會形成“死循環(huán)”。(4)由于先判斷條件,也許第一次測試條件時,表達(dá)式的值就為false,在這種情況下循環(huán)體將一次也不執(zhí)行。 3.4 while

12、語句 dowhile語句實現(xiàn)的循環(huán)式直到型循環(huán),該類循環(huán)先執(zhí)行循環(huán)體再測試循環(huán)條件。dowhile語句的格式和功能如下:語句格式: do 語句塊 while (布爾表達(dá)式);3.5 dowhile語句 執(zhí)行過程:首先執(zhí)行循環(huán)體內(nèi)的語句,再對while后面的表達(dá)式進(jìn)行判斷,如果表達(dá)式的值為true,就再執(zhí)行循環(huán)體內(nèi)的語句如此循環(huán),直到表達(dá)式的值為false時結(jié)束循環(huán),執(zhí)行循環(huán)后面的語句。其特點是“先執(zhí)行,后判斷”10 七月 2022說明:(1)表達(dá)式稱為循環(huán)條件表達(dá)式,一般為關(guān)系表達(dá)式或邏輯表達(dá)式,必須用“( )”括起來;(2)語句稱為循環(huán)體,可以是單個或復(fù)合語句,復(fù)合語句應(yīng)該用花括號括起來;(

13、3)dowhile語句以分號結(jié)束;(4)執(zhí)行dowhile語句時,無論一開始表達(dá)式的值是true還是false,循環(huán)體內(nèi)的語句至少執(zhí)行一次。 3.5 dowhile語句 在循環(huán)次數(shù)已知的情況下,用for語句來實現(xiàn)循環(huán)比較容易,故for語句有時也稱計數(shù)循環(huán)語句。for語句能將循環(huán)變量初始化、循環(huán)條件以及循環(huán)變量的改變都放在同一行語句中。for循環(huán)語句的格式和功能如下:語句格式: for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句塊 3.6 for語句 計算表達(dá)式1的值; 計算表達(dá)式2的值,若表達(dá)式2的值為true時,則轉(zhuǎn)到;若表達(dá)式2的值為false時,則結(jié)束循環(huán); 執(zhí)行循環(huán)體語句; 計算表達(dá)式3的

14、值,返回繼續(xù)執(zhí)行。for語句的執(zhí)行流程如圖所示。10 七月 2022for語句可以和下列while語句等效:表達(dá)式1;while (表達(dá)式2) 語句塊 表達(dá)式3;10 七月 2022說明:(1) 表達(dá)式1稱為循環(huán)初始化表達(dá)式,通常為賦值表達(dá)式,簡單情況下為循環(huán)變量賦初值;(2) 表達(dá)式2稱為循環(huán)條件表達(dá)式,通常為關(guān)系表達(dá)式或邏輯表達(dá)式,簡單情況下為循環(huán)結(jié)束條件;(3) 表達(dá)式3稱為循環(huán)變量表達(dá)式,通常為賦值表達(dá)式,簡單情況下為循環(huán)變量的改變。(4) 語句部分為循環(huán)體,它可以是單個或復(fù)合語句。 3.6 for語句(1)for語句中的三個表達(dá)式都可省略,但其中的兩個分號不能省略;(2)若表達(dá)式1省

15、略,則應(yīng)在for語句之前給循環(huán)變量賦初值。例如: i=1; for (;i=n;i+) sum=sum+i;(3)若表達(dá)式2省略,則不判斷循環(huán)條件,循環(huán)無終止地進(jìn)行下去,形成“死循環(huán)”,即認(rèn)為表達(dá)式2始終為真,因此表達(dá)式2通常不能省略(如果省略,循環(huán)體內(nèi)應(yīng)有if語句跳出循環(huán));10 七月 2022(4)若表達(dá)式3省略,則在循環(huán)體中應(yīng)有能不斷修改循環(huán)條件的語句。例如: for (i=1;i=n;) sum=sum+i; i+; (5)若省略表達(dá)式1和表達(dá)式3,只有表達(dá)式2,即只給出循環(huán)條件。例如: i=1; for (;i=n;) sum=sum+i; i+; 此時,for語句和while語句完

16、全相同。上述語句相當(dāng)于: i=1; while (i=n) sum=sum+i; i+; 10 七月 2022(6)表達(dá)式1和表達(dá)式3可以是一個簡單的表達(dá)式,也可以是其他表達(dá)式,當(dāng)然可以是逗號表達(dá)式,即用逗號“,”隔開的多個簡單表達(dá)式,它們的運算順序是從左到右順序進(jìn)行。例如: for (sum=0,i=1;i=n;i+) sum=sum+i;由此可見,用for語句比用while語句書寫更簡潔。10 七月 2022這里對三種循環(huán)語句進(jìn)行比較,分析如下:(1)while與for語句為先判斷后執(zhí)行(當(dāng)型:可能一次也不執(zhí)行循環(huán)體);dowhile語句是先執(zhí)行判斷(直到型:循環(huán)體至少執(zhí)行一次)。(2)三

17、種語句都是循環(huán)條件為真時執(zhí)行循環(huán)體,為假時結(jié)束循環(huán)。(3)在循環(huán)體至少執(zhí)行一次的情況下,三種循環(huán)語句構(gòu)成的循環(huán)結(jié)構(gòu)可以相互轉(zhuǎn)換。實際上,用得最多的是for語句,其次是while語句,而dowhile語句相對于前兩種語句則用得較少。循環(huán)語句中又包含有循環(huán)語句的結(jié)構(gòu)稱為循環(huán)語句的嵌套。循環(huán)語句的嵌套又稱多重循環(huán)。當(dāng)一個循環(huán)語句的循環(huán)體中只含一層循環(huán)語句時,稱雙重循環(huán);若第二層循環(huán)語句的循環(huán)體中還包含一層循環(huán)語句時,稱三重循環(huán),等等。三種循環(huán)語句可以互相嵌套。10 七月 20221break語句break語句在前面學(xué)習(xí)switch時已經(jīng)用過,它還可以用來從程序的循環(huán)語句中跳出。在執(zhí)行循環(huán)時,有時可能

18、希望在循環(huán)體執(zhí)行到一半時就退出循環(huán),而不是整個循環(huán)體執(zhí)行完畢,等循環(huán)條件判斷完畢才退出,此時可以使用流程轉(zhuǎn)向語句break。break語句的格式和功能如下:語句格式: break;執(zhí)行過程:當(dāng)在循環(huán)體中遇到這一語句后就終止對循環(huán)的執(zhí)行,流程直接跳轉(zhuǎn)到當(dāng)前循環(huán)語句的下一語句執(zhí)行。說明:(1)break語句用于終止最內(nèi)層的while、do-while、for和switch語句的執(zhí)行;(2)一般在循環(huán)體中并不直接使用break語句,在需要從循環(huán)中跳出時,break通常都和一個if語句進(jìn)行配合使用,在循環(huán)體中測試某個條件是否滿足,如果if語句的條件成立時,則執(zhí)行break語句退出循環(huán)。3.7 break和continue語句 2continue語句continue語句稱為接續(xù)語句,它專用于循環(huán)結(jié)構(gòu)中,表示本次循環(huán)結(jié)束,開始下一次循環(huán)。continue語句的格式和功能如下:語句格式: continue;執(zhí)行過程:當(dāng)在循環(huán)體中遇到這一語句后停止當(dāng)前進(jìn)行的這次循環(huán),即跳過當(dāng)前循環(huán)的剩余語句塊,并把控制返回到當(dāng)前循環(huán)的頂部,接著再一次進(jìn)行循環(huán)條件判斷,以便于進(jìn)行下一次循環(huán)。 3.7 break和continue語句 2continue語句說明:(1)與break語句不同的是,continue語句不是終止整個循環(huán)的執(zhí)行,而僅僅終止當(dāng)前這一次循環(huán)的執(zhí)行。(2)一般在循環(huán)體中并不直接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論