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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、查表達式的值,再執(zhí)行循環(huán),直到表達式值為false時結束循環(huán),執(zhí)行循環(huán)后面的語句。其特點是“先判斷,后執(zhí)行”10 七月 2022說明:(1)表達式稱為循環(huán)條件表達式,一般為關系表達式或邏輯表達式,必須用“( )”括起來;(2)語句稱為循環(huán)體,可以是單個或復合語句,復合語句應該用花括號括起來;(3)通常進入循環(huán)時,括號內部的表達式值為true,但循環(huán)最終都要退出,因此在循環(huán)體中應有使循環(huán)趨于結束的語句,即能夠使表達式的值由true變?yōu)閒alse的語句,否則會形成“死循環(huán)”。(4)由于先判斷條件,也許第一次測試條件時,表達式的值就為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 (布爾表達式);3.5 dowhile語句 執(zhí)行過程:首先執(zhí)行循環(huán)體內的語句,再對while后面的表達式進行判斷,如果表達式的值為true,就再執(zhí)行循環(huán)體內的語句如此循環(huán),直到表達式的值為false時結束循環(huán),執(zhí)行循環(huán)后面的語句。其特點是“先執(zhí)行,后判斷”10 七月 2022說明:(1)表達式稱為循環(huán)條件表達式,一般為關系表達式或邏輯表達式,必須用“( )”括起來;(2)語句稱為循環(huán)體,可以是單個或復合語句,復合語句應該用花括號括起來;(

13、3)dowhile語句以分號結束;(4)執(zhí)行dowhile語句時,無論一開始表達式的值是true還是false,循環(huán)體內的語句至少執(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 (表達式1;表達式2;表達式3) 語句塊 3.6 for語句 計算表達式1的值; 計算表達式2的值,若表達式2的值為true時,則轉到;若表達式2的值為false時,則結束循環(huán); 執(zhí)行循環(huán)體語句; 計算表達式3的

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論