第3章 流程控制_第1頁
第3章 流程控制_第2頁
第3章 流程控制_第3頁
第3章 流程控制_第4頁
第3章 流程控制_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章流程控制

C#是完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,采用了事件驅(qū)動(dòng)機(jī)制,但在程序設(shè)計(jì)時(shí),仍然涉及到流程控制。結(jié)構(gòu)化程序設(shè)計(jì)方法把程序的流程分為3種,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這3種結(jié)構(gòu)在任何程序設(shè)計(jì)語言中的應(yīng)用都非常廣泛而且十分相似。重點(diǎn)內(nèi)容:順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)中斷語句一、順序結(jié)構(gòu)程序設(shè)計(jì)1.賦值語句

順序結(jié)構(gòu)是程序設(shè)計(jì)中最簡(jiǎn)單的基本結(jié)構(gòu),語句之間的執(zhí)行順序是按照其書寫次序一條接一條地順序執(zhí)行,是其他結(jié)構(gòu)的基礎(chǔ)。

C#語言中的賦值語句是由賦值表達(dá)式加上一個(gè)語句結(jié)束符號(hào)“;”構(gòu)成的。由于C#語言提供了豐富的賦值表達(dá)式形式,因此賦值語句也有多種形式。例如下面列出的三種形式:

1.簡(jiǎn)單的賦值語句,如:inta=100; 2.復(fù)合賦值語句,如:a+=200; 3.連續(xù)賦值語句,如:a=b=c=d=5;一、順序結(jié)構(gòu)程序設(shè)計(jì)2.控制臺(tái)輸入與輸出 任何一個(gè)應(yīng)用程序在進(jìn)行數(shù)據(jù)處理的過程中,都離不開數(shù)據(jù)的輸入與輸出??刂婆_(tái)應(yīng)用程序的輸入、輸出主要通過Console類中的Write()、WriteLine()、Read()、ReadLine()等靜態(tài)方法來實(shí)現(xiàn)。1.輸入方法

Read()與ReadLine()方法2.輸出方法

Write()和WriteLine()方法一、順序結(jié)構(gòu)程序設(shè)計(jì)3.編寫順序結(jié)構(gòu)程序 順序結(jié)構(gòu)程序通常包括輸入數(shù)據(jù)、數(shù)據(jù)處理和輸出結(jié)果3部分。想要讓計(jì)算機(jī)為用戶處理數(shù)據(jù),用戶必須先輸入要處理的數(shù)據(jù)。當(dāng)要處理的數(shù)據(jù)輸入到計(jì)算機(jī)后,根據(jù)用戶需要計(jì)算機(jī)進(jìn)行相應(yīng)的運(yùn)算處理,最后把處理結(jié)果輸出出來。在中學(xué)數(shù)學(xué)中經(jīng)常見到方程:ax2+bx+c=0,圖3.1中的代碼實(shí)現(xiàn)使用C#求出方程的根。圖3.1求方程根的代碼圖二、選擇結(jié)構(gòu)程序設(shè)計(jì) 一般來說,程序在運(yùn)行的過程中,要求能夠改變語句的執(zhí)行順序以實(shí)現(xiàn)某種特定的功能。其中,選擇結(jié)構(gòu)程序的設(shè)計(jì)就是一種能夠滿足上述要求的方法。 在C#中,提供兩種選擇語句實(shí)現(xiàn)流程的改變,即if語句和switch語句,if語句用于判斷特定的條件能否滿足,一般用于單分支選擇,也可以嵌套實(shí)現(xiàn)多分支選擇。switch語句,多用于多分支選擇。二、選擇結(jié)構(gòu)程序設(shè)計(jì)1.單分支選擇結(jié)構(gòu)--if語句 當(dāng)程序中的一個(gè)問題出現(xiàn)兩個(gè)或多個(gè)不同的處理時(shí),要根據(jù)具體情況進(jìn)行解決,需要使用選擇語句控制程序的流程實(shí)現(xiàn)。選擇語句要根據(jù)布爾條件表達(dá)式的值選擇執(zhí)行的分支語句,進(jìn)而實(shí)現(xiàn)流程控制。if語句是程序設(shè)計(jì)中基本的選擇語句,其功能是根據(jù)條件表達(dá)式的值選擇執(zhí)行后面的內(nèi)嵌語句序列。一般用于簡(jiǎn)單選擇,即選擇項(xiàng)中有一個(gè)或兩個(gè)分支。例如判斷變量的值是否大于5:if(a>5) {Console.WriteLine("輸入的數(shù)大于5!");}二、選擇結(jié)構(gòu)程序設(shè)計(jì)2.嵌套if語句

if語句可以嵌套使用,如果程序的邏輯判斷關(guān)系比較復(fù)雜,通常會(huì)采用條件判斷嵌套語句。例如下面的嵌套語句。if(表達(dá)式1){if(表達(dá)式2){

語句1;}else{語句2;}}二、選擇結(jié)構(gòu)程序設(shè)計(jì)3.多分支選擇結(jié)構(gòu)--switch語句 嵌套的if語句可以實(shí)現(xiàn)多分支選擇,但是如果分支過多,程序的結(jié)構(gòu)會(huì)很混亂、不易讀而且不易跟蹤。C#語言提供了一個(gè)專門解決多分支選擇結(jié)果的switch語句。該語句格式如下所示。switch(控制表達(dá)式){case常量表達(dá)式1:

內(nèi)嵌語句1;break; default:

內(nèi)嵌語句2;break;}

三、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1.for循環(huán)語句 循環(huán)是實(shí)現(xiàn)程序特定功能的一種機(jī)制,在程序設(shè)計(jì)中起著非常重要的作用。使用循環(huán)結(jié)構(gòu),可以實(shí)現(xiàn)一個(gè)程序模塊的重復(fù)執(zhí)行,進(jìn)而使一些復(fù)雜的問題簡(jiǎn)單化。

for循環(huán)語句是C#中使用最為頻繁的循環(huán)語句。它用于測(cè)試表達(dá)式是否滿足特定條件。如果滿足,則進(jìn)入循環(huán),否則退出循環(huán)。在事先知道循環(huán)次數(shù)的情況下,使用for語句是比較方便。for循環(huán)的語法格式如下所示。for(初始化表達(dá)式;循環(huán)條件表達(dá)式;循環(huán)控制表達(dá)式){

循環(huán)語句;}三、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)2.foreach循環(huán)語句

foreach語句是在C#中新引入的。C和C++中沒有這個(gè)語句。foreach語句多用在解決數(shù)組的問題上,與for語句的使用有相似之處。foreach循環(huán)應(yīng)用范圍沒有for循環(huán)廣泛,但相對(duì)來說比較簡(jiǎn)單。staticvoidMain(string[]args) //主方法,程序入口{int[]array=newint[]{0,1,2,3,4};//聲明一個(gè)整型數(shù)組

foreach(intiinarray) //使用foreach循環(huán)

{Console.WriteLine(i); //輸出數(shù)組中的數(shù)

}Console.ReadLine(); //等待用戶輸入}三、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.while循環(huán)語句 與for語句一樣,while語句也是實(shí)現(xiàn)循環(huán)功能的語句。一般while語句用來實(shí)現(xiàn)不知道循環(huán)次數(shù)的情況,是典型的當(dāng)型循環(huán)結(jié)構(gòu)。即當(dāng)表達(dá)式為真時(shí),才執(zhí)行循環(huán)體。例如下面使用while語句求一個(gè)數(shù)列的和。while(n!=0) //當(dāng)n!=0為真時(shí),執(zhí)行循環(huán)體{ sum+=n; //倒序相加

n--; //變量n自減}三、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.do…while循環(huán)語句

dowhile語句也是用于循環(huán)的語句,可以實(shí)現(xiàn)直到型循環(huán)結(jié)構(gòu)。與while語句不同的是,dowhile在執(zhí)行時(shí)首先要無條件地執(zhí)行內(nèi)嵌語句一次,然后再判斷表達(dá)式是否為真,如果表達(dá)式為真,再次執(zhí)行循環(huán)體,否則終止循環(huán)。dowhile語句的語法格式如下所示。do{

內(nèi)嵌語句;}while(布爾表達(dá)式);三、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)5.循環(huán)嵌套

所謂循環(huán)嵌套,是指一個(gè)循環(huán)體內(nèi)包含另一個(gè)循環(huán)。前面介紹的3種循環(huán)都可以互相嵌套,這就是多重循環(huán)。但要注意循環(huán)層次要清楚,不能交叉。九九乘法表是一個(gè)典型的循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的示例。

inti,j; //定義兩個(gè)整型變量

Console.WriteLine("循環(huán)嵌套示例——九九乘法表");for(i=1;i<10;i++) //外層for循環(huán),控制行數(shù)

{for(j=1;j<=i;j++)//內(nèi)層for循環(huán),控制列數(shù)

{ //輸出乘法表

Console.Write("{0}*{1}={2}\t",i,j,i*j); }Console.WriteLine(); //換行

}四、循環(huán)中斷1.break終止循環(huán)語句所謂循環(huán)中斷,就是指在循環(huán)結(jié)束前采用某個(gè)語句跳出循環(huán)。break語句終止循環(huán),循環(huán)體內(nèi)其余的代碼將不會(huì)執(zhí)行,用于循環(huán)結(jié)構(gòu)中,也可用于switch語句中。其作用是結(jié)束所在的結(jié)構(gòu)語句,即退出最近的封閉switch、while、do、for或foreach語句等。for(inti=1;i<=100;i++) //使用for循環(huán){if(i==10) //判斷條件

{break; //滿足條件時(shí)退出循環(huán)體

}Console.WriteLine(i); //輸出變量i的值}四、循環(huán)中斷2.return返回指定值語句

return中斷當(dāng)前循環(huán)的同時(shí),也中斷當(dāng)前方法的執(zhí)行,一般用于返回運(yùn)算結(jié)果。也可以在循環(huán)中使用該語句,用于終止循環(huán)。不過return語句更多的是和方法(本書將在第4章介紹方法)一起使用,用于將指定的數(shù)據(jù)返回到方法調(diào)用處。方法的一般格式如下所示。

return表達(dá)式;

四、循環(huán)中斷3.continue停止當(dāng)前循環(huán)語句

continue語句用來結(jié)束本次循環(huán),但并不跳出循環(huán),而是繼續(xù)進(jìn)行下一次是否執(zhí)行循環(huán)體的判定。continue語句只用在循環(huán)中,常與if語句配合使用。for(inti=1;i<=20;i++) //使用for循環(huán){if(i%2==0) //判斷條件

{continue; //結(jié)束本次循環(huán),不退出循環(huán)體

}Console.WriteLine(i); //輸出i}

四、循環(huán)中斷4.goto跳轉(zhuǎn)語句

goto語句是無條件跳轉(zhuǎn)語句,跳轉(zhuǎn)到由其后面標(biāo)號(hào)注釋的語句。在程序設(shè)計(jì)中,不提倡使用goto語句,因?yàn)橥耆梢圆槐厥褂镁涂梢酝瓿伤泄ぷ?。適度地使用goto語句會(huì)使程序變得簡(jiǎn)潔。不過,若濫用會(huì)導(dǎo)致程序的維護(hù)和閱讀難度大大增加。goto語句的作用是跳轉(zhuǎn)到指定的語句,然后繼續(xù)往下執(zhí)行。使用goto語句時(shí)首先在想要跳往的語句前面加個(gè)標(biāo)簽和冒號(hào)即可。

toHere:Console.WriteLine(“跳轉(zhuǎn)到此處!”);

然后,當(dāng)想跳轉(zhuǎn)到該條語句時(shí),使用“goto標(biāo)簽名;”即可。代碼如下所示。

gototoHere; 五、實(shí)訓(xùn)3.1——常用的排序算法1.使用冒泡法排序分析 冒泡法是一種典型的排列數(shù)據(jù)的算法,可以把一個(gè)數(shù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論