




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 在程序設(shè)計(jì)中有許多問(wèn)題都要用到在程序設(shè)計(jì)中有許多問(wèn)題都要用到循環(huán),例如,將某個(gè)字符串打印循環(huán),例如,將某個(gè)字符串打印100遍、遍、求若干個(gè)數(shù)的和等它們使用循環(huán)能多次求若干個(gè)數(shù)的和等它們使用循環(huán)能多次執(zhí)行同一個(gè)任務(wù),直到完成程序的功能,執(zhí)行同一個(gè)任務(wù),直到完成程序的功能,這是程序設(shè)計(jì)中經(jīng)常用到的技術(shù)。循環(huán)這是程序設(shè)計(jì)中經(jīng)常用到的技術(shù)。循環(huán)是程序設(shè)計(jì)的基本語(yǔ)句之一,幾乎所有是程序設(shè)計(jì)的基本語(yǔ)句之一,幾乎所有的實(shí)用程序都包含了循環(huán)語(yǔ)句,熟練掌的實(shí)用程序都包含了循環(huán)語(yǔ)句,熟練掌握它們是程序設(shè)計(jì)的基本要求。握它們是程序設(shè)計(jì)的基本要求。1 在大多數(shù)高級(jí)編程語(yǔ)言中(在大多數(shù)高級(jí)編程語(yǔ)言中(C+、Java)
2、都)都有有for循環(huán)語(yǔ)句,它的功能強(qiáng)大并且使用靈活,不循環(huán)語(yǔ)句,它的功能強(qiáng)大并且使用靈活,不僅可以用于循環(huán)次數(shù)確定的情況下,還能用于循僅可以用于循環(huán)次數(shù)確定的情況下,還能用于循環(huán)次數(shù)不確定的情況。環(huán)次數(shù)不確定的情況。for語(yǔ)句使用的語(yǔ)法形式為:語(yǔ)句使用的語(yǔ)法形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體; 22022-5-253NY流程圖流程圖計(jì)算表達(dá)式計(jì)算表達(dá)式1 語(yǔ)句語(yǔ)句計(jì)算表達(dá)式計(jì)算表達(dá)式3表達(dá)式表達(dá)式2為真為真?例如:例如:static void main( string args)for ( i=1; i=100; i+) Console.Write(i);2022-5-25
3、4 表達(dá)式表達(dá)式1、2、3全省略,全省略,即:即: for ( ; ; ) ,會(huì)無(wú)限循環(huán)(,會(huì)無(wú)限循環(huán)()注意:在省略某個(gè)表達(dá)式時(shí),應(yīng)在適當(dāng)位置進(jìn)行循注意:在省略某個(gè)表達(dá)式時(shí),應(yīng)在適當(dāng)位置進(jìn)行循環(huán)控制的必要操作,以保證循環(huán)的正確執(zhí)行環(huán)控制的必要操作,以保證循環(huán)的正確執(zhí)行2022-5-255 i=1; for ( ; i=100; i+) sum+=i; for (i=1; ; i+) for (i=1; i=100; ) i=1; for ( ; ; ) 2022-5-256【例【例3-9】編寫程序,求】編寫程序,求100個(gè)自然數(shù)的和個(gè)自然數(shù)的和即:即: 思路:尋找思路:尋找加數(shù)加數(shù)與與求和求
4、和的規(guī)律的規(guī)律 加數(shù)加數(shù) 從從1變到變到100,每循環(huán)一次,使,每循環(huán)一次,使i增增1,直到直到i的值超過(guò)的值超過(guò)100。 的的設(shè)為設(shè)為1。求和求和設(shè)變量設(shè)變量 存放和,循環(huán)求存放和,循環(huán)求,直至,直至i超過(guò)超過(guò)100。 2022-5-257l為了保證循環(huán)正常運(yùn)行,應(yīng)該特別注意:為了保證循環(huán)正常運(yùn)行,應(yīng)該特別注意: 循環(huán)控制條件的描述循環(huán)控制條件的描述2022-5-258【例【例3-10】求】求n! ,即計(jì)算,即計(jì)算p=123n的值。的值。 思路:求階乘與求累加的運(yùn)算處理過(guò)程類似,只要思路:求階乘與求累加的運(yùn)算處理過(guò)程類似,只要將將“ ”變?yōu)樽優(yōu)椤?”。設(shè)置:設(shè)置: ,初值為,初值為1,終值為
5、,終值為n(n是循環(huán)控制是循環(huán)控制終值,需要從鍵盤輸入)終值,需要從鍵盤輸入) ,每次循環(huán)令,每次循環(huán)令p = p*il 【例【例3-113-11】 一張單據(jù)上有一個(gè)一張單據(jù)上有一個(gè)5 5位數(shù)的號(hào)碼位數(shù)的號(hào)碼為為6 6* * *4242,其中百位數(shù)和千位數(shù)已模糊不清,其中百位數(shù)和千位數(shù)已模糊不清,但知道該數(shù)能被但知道該數(shù)能被 57 57 和和 67 67 除盡。設(shè)計(jì)一個(gè)算除盡。設(shè)計(jì)一個(gè)算法,找出該單據(jù)所有可能的號(hào)碼。法,找出該單據(jù)所有可能的號(hào)碼。 while循環(huán)語(yǔ)句是循環(huán)語(yǔ)句是C#中不同于中不同于for語(yǔ)句的一語(yǔ)句的一種循環(huán)形式,它由循環(huán)條件和循體語(yǔ)句組成,使種循環(huán)形式,它由循環(huán)條件和循體語(yǔ)句
6、組成,使用用while循環(huán)語(yǔ)句的語(yǔ)法形式如下所示:循環(huán)語(yǔ)句的語(yǔ)法形式如下所示:while(循環(huán)條件) 循環(huán)體語(yǔ)句;102022-5-2511l計(jì)算表達(dá)式的值計(jì)算表達(dá)式的值內(nèi)嵌語(yǔ)句內(nèi)嵌語(yǔ)句 表達(dá)式表達(dá)式true?語(yǔ)句語(yǔ)句2022-5-2512 i的初值的初值=101 。死循環(huán)死循環(huán) while (i=100) i+; sum=sum+i; l【例【例3-123-12】編程求下式的值(要求編寫】編程求下式的值(要求編寫成控制臺(tái)應(yīng)用程序):成控制臺(tái)應(yīng)用程序):l S=1S=12 2 + 2 + 22 2 + +10+102 22022-5-2514l所有用所有用 for 語(yǔ)句語(yǔ)句實(shí)現(xiàn)的循環(huán)都可以用實(shí)
7、現(xiàn)的循環(huán)都可以用while 語(yǔ)句語(yǔ)句實(shí)現(xiàn)。實(shí)現(xiàn)。 do-while同樣是由循環(huán)條件和循環(huán)體組成,同樣是由循環(huán)條件和循環(huán)體組成,但它但它while語(yǔ)句略有不同。語(yǔ)句略有不同。do-while語(yǔ)句的特語(yǔ)句的特點(diǎn)為:先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否點(diǎn)為:先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。使用它時(shí)的語(yǔ)法形式為:成立。使用它時(shí)的語(yǔ)法形式為:do 循環(huán)體while(循環(huán)條件);152022-5-2516NY循環(huán)體循環(huán)體表達(dá)式表達(dá)式true ?流程圖流程圖main( ) int i=1,sum=0; do sum=sum+i; i+; while (i=100); Console.Write(sum
8、);l while 由于先判斷條件,如第一次測(cè)試由于先判斷條件,如第一次測(cè)試條件時(shí),表達(dá)式值就為條件時(shí),表達(dá)式值就為 false,循環(huán)體將,循環(huán)體將一次也不執(zhí)行。因此,一次也不執(zhí)行。因此,當(dāng)型循環(huán)當(dāng)型循環(huán)又稱又稱“允許允許 0 次循環(huán)次循環(huán)”。l dowhile 先執(zhí)行語(yǔ)句,后判斷表達(dá)式,先執(zhí)行語(yǔ)句,后判斷表達(dá)式,因此,循環(huán)體至少執(zhí)行一次。因此,因此,循環(huán)體至少執(zhí)行一次。因此,直直到型循環(huán)到型循環(huán)又稱又稱“不允許不允許 0 次循環(huán)次循環(huán)”。l【例【例3-13】 編一個(gè)程序按下列公式求編一個(gè)程序按下列公式求e的值(要求精度達(dá)到的值(要求精度達(dá)到1e-6)。)。l 2022-5-2519【例【例3
9、-14】用輾轉(zhuǎn)相除法求】用輾轉(zhuǎn)相除法求m和和n的最大公約數(shù)的最大公約數(shù)定義定義m、n、rmnT F m和和n交換交換r=m%nm=nn=r 當(dāng)當(dāng)r != 0時(shí)時(shí)輸出最大公約數(shù)輸出最大公約數(shù)m2022-5-2520lwhiledo-while表達(dá)式表達(dá)式一個(gè)一個(gè)for三個(gè)三個(gè)lwhile for先判斷先判斷后執(zhí)行后執(zhí)行do-while先執(zhí)行先執(zhí)行后判斷后判斷 foreach循環(huán)語(yǔ)句是循環(huán)語(yǔ)句是C#中特有的,在中特有的,在C、C+和和Java語(yǔ)言中并沒(méi)有這種循環(huán)語(yǔ)句。它非常適合遍歷數(shù)語(yǔ)言中并沒(méi)有這種循環(huán)語(yǔ)句。它非常適合遍歷數(shù)組中的元素,組中的元素,foreach很重要的優(yōu)點(diǎn)是它不必去處理數(shù)很重要的
10、優(yōu)點(diǎn)是它不必去處理數(shù)組的下標(biāo)。使用組的下標(biāo)。使用foreach時(shí)它的語(yǔ)法形式一般為:時(shí)它的語(yǔ)法形式一般為:for(類型 標(biāo)識(shí)符 in 表達(dá)式) 循環(huán)體;21 除了上述的分支語(yǔ)句和循環(huán)語(yǔ)句外,還有除了上述的分支語(yǔ)句和循環(huán)語(yǔ)句外,還有一種特殊的程序控制語(yǔ)句,即跳轉(zhuǎn)語(yǔ)句。跳轉(zhuǎn)一種特殊的程序控制語(yǔ)句,即跳轉(zhuǎn)語(yǔ)句。跳轉(zhuǎn)跳轉(zhuǎn)語(yǔ)句用于需要從當(dāng)前程序跳轉(zhuǎn)到另一行程跳轉(zhuǎn)語(yǔ)句用于需要從當(dāng)前程序跳轉(zhuǎn)到另一行程序執(zhí)行代碼的情況,序執(zhí)行代碼的情況,C#中提供了多種跳轉(zhuǎn)語(yǔ)句,中提供了多種跳轉(zhuǎn)語(yǔ)句,詳細(xì)介紹詳細(xì)介紹goto、break、continue和和return語(yǔ)句。語(yǔ)句。22l 語(yǔ)句格式:語(yǔ)句格式:l goto 標(biāo)
11、示符;標(biāo)示符; l 轉(zhuǎn)向具有給定標(biāo)簽的標(biāo)記語(yǔ)句,用于跳出轉(zhuǎn)向具有給定標(biāo)簽的標(biāo)記語(yǔ)句,用于跳出深層嵌套循環(huán)。深層嵌套循環(huán)。l goto default、 goto case 常數(shù)表達(dá)式常數(shù)表達(dá)式l 將控制傳遞給特定的將控制傳遞給特定的 switch-case 標(biāo)簽標(biāo)簽或或 switch 語(yǔ)句中的默認(rèn)標(biāo)簽。語(yǔ)句中的默認(rèn)標(biāo)簽。l(1)如果當(dāng)前函數(shù)成員中不存在具有給定)如果當(dāng)前函數(shù)成員中不存在具有給定名稱的標(biāo)簽,或者名稱的標(biāo)簽,或者 goto 語(yǔ)句不在標(biāo)簽的范語(yǔ)句不在標(biāo)簽的范圍內(nèi),則發(fā)生編譯時(shí)錯(cuò)誤。圍內(nèi),則發(fā)生編譯時(shí)錯(cuò)誤。l(2)goto 語(yǔ)句可將控制轉(zhuǎn)移出嵌套范圍語(yǔ)句可將控制轉(zhuǎn)移出嵌套范圍(即跳出深
12、層嵌套循環(huán)),但是不允許將(即跳出深層嵌套循環(huán)),但是不允許將控制轉(zhuǎn)移進(jìn)另一個(gè)語(yǔ)句塊內(nèi)部,更不能轉(zhuǎn)控制轉(zhuǎn)移進(jìn)另一個(gè)語(yǔ)句塊內(nèi)部,更不能轉(zhuǎn)到另一個(gè)函數(shù)內(nèi)部。到另一個(gè)函數(shù)內(nèi)部。2022-5-2525l不提倡使用不提倡使用goto語(yǔ)句語(yǔ)句2022-5-2526后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句l功能:功能: 利用利用break語(yǔ)句能夠強(qiáng)迫終止本層循環(huán),轉(zhuǎn)到語(yǔ)句能夠強(qiáng)迫終止本層循環(huán),轉(zhuǎn)到后續(xù)語(yǔ)句執(zhí)行。后續(xù)語(yǔ)句執(zhí)行。后續(xù)語(yǔ)句后續(xù)語(yǔ)句2022-5-2527while (n10) Console.Read(x); s+=x; n+; ; Console.Read(Console.Read(lbreak用于退出用
13、于退出最近的最近的封閉封閉 switch、while、do 或或 for 語(yǔ)句。如果語(yǔ)句。如果 break 語(yǔ)句不是由語(yǔ)句不是由 switch、while、do 或或 for 語(yǔ)句封閉,則語(yǔ)句封閉,則發(fā)生編譯時(shí)錯(cuò)誤。發(fā)生編譯時(shí)錯(cuò)誤。l當(dāng)多個(gè)當(dāng)多個(gè) switch、while、do 或或 for 語(yǔ)句彼語(yǔ)句彼此嵌套時(shí),此嵌套時(shí),break 語(yǔ)句只應(yīng)用于語(yǔ)句只應(yīng)用于 最里層最里層的的語(yǔ)句。若要在多個(gè)嵌套層之間轉(zhuǎn)移控制,語(yǔ)句。若要在多個(gè)嵌套層之間轉(zhuǎn)移控制,必須使用必須使用 goto 語(yǔ)句。語(yǔ)句。l【例【例3-15】 輸入一個(gè)整數(shù)輸入一個(gè)整數(shù) X,如果該數(shù),如果該數(shù)是素?cái)?shù),則顯示是素?cái)?shù),則顯示“是素?cái)?shù)是
14、素?cái)?shù).”,如果不是,如果不是則顯示則顯示“不是素?cái)?shù)不是素?cái)?shù)”。 輸入一個(gè)數(shù)輸入一個(gè)數(shù)mfor (j=2; j=m T F輸出輸出YES“ 輸出輸出NO2022-5-2530后續(xù)語(yǔ)句后續(xù)語(yǔ)句 后續(xù)語(yǔ)句后續(xù)語(yǔ)句l功能:功能: 中斷循環(huán)體的本次執(zhí)行(即跳過(guò)循環(huán)體中尚未執(zhí)中斷循環(huán)體的本次執(zhí)行(即跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句),立即開(kāi)始執(zhí)行下一次循環(huán)。行的語(yǔ)句),立即開(kāi)始執(zhí)行下一次循環(huán)。后續(xù)語(yǔ)句后續(xù)語(yǔ)句2022-5-2531while (n10) Console.Read(x);s+=x; n+; ; l continue 語(yǔ)句將控制轉(zhuǎn)到語(yǔ)句將控制轉(zhuǎn)到最近的最近的封閉封閉 while、do、for 或或
15、foreach 語(yǔ)句的嵌入語(yǔ)句的語(yǔ)句的嵌入語(yǔ)句的結(jié)束點(diǎn)結(jié)束點(diǎn),從而執(zhí)行這些語(yǔ)句的,從而執(zhí)行這些語(yǔ)句的另一次迭代另一次迭代。如。如果果 continue 語(yǔ)句不是由語(yǔ)句不是由 while、do、for 或或 foreach 語(yǔ)句封閉的,則發(fā)生編譯時(shí)錯(cuò)誤。語(yǔ)句封閉的,則發(fā)生編譯時(shí)錯(cuò)誤。 l 當(dāng)多個(gè)當(dāng)多個(gè) while、do 或或 for 語(yǔ)句互相嵌套時(shí),語(yǔ)句互相嵌套時(shí),continue 只應(yīng)用于只應(yīng)用于最里層最里層的語(yǔ)句,若要在多個(gè)的語(yǔ)句,若要在多個(gè)嵌套層之間轉(zhuǎn)移控制,必須使用嵌套層之間轉(zhuǎn)移控制,必須使用 goto 語(yǔ)句。語(yǔ)句。2022-5-2533【例【例3-16】把】把100200之間能被之間能
16、被7整除的數(shù),整除的數(shù),以十個(gè)數(shù)為一行的形式輸出,最以十個(gè)數(shù)為一行的形式輸出,最后輸出一共有多少個(gè)這樣的數(shù)。后輸出一共有多少個(gè)這樣的數(shù)。 for (n=100; n=200; n+) n能被能被7整除整除 T F 終止本次循環(huán)終止本次循環(huán) 輸出輸出n 輸出輸出10個(gè)數(shù)個(gè)數(shù) T F 換行換行l(wèi)break VS. continuel將控制轉(zhuǎn)移到循環(huán)將控制轉(zhuǎn)移到循環(huán) 將控制轉(zhuǎn)移到將控制轉(zhuǎn)移到l語(yǔ)句的結(jié)束點(diǎn),從語(yǔ)句的結(jié)束點(diǎn),從 嵌入語(yǔ)句的結(jié)嵌入語(yǔ)句的結(jié)l而而終止整個(gè)循環(huán)終止整個(gè)循環(huán) 束點(diǎn),即束點(diǎn),即結(jié)束本結(jié)束本l的執(zhí)行。的執(zhí)行。 次循環(huán)次循環(huán)(執(zhí)行循環(huán)(執(zhí)行循環(huán)l 語(yǔ)句的另一次迭代)語(yǔ)句的另一次迭代)
17、 2022-5-2535l例如:例如:static void main(string args ) int i, j; for ( i=1; i10; i+ ) for ( j=1; j=i; j+ ) if(j=i) Console.WriteLine(j*i); else Console.Write(j*i) 外循環(huán)語(yǔ)句外循環(huán)語(yǔ)句內(nèi)循環(huán)語(yǔ)句內(nèi)循環(huán)語(yǔ)句2022-5-2536lwhiledo-whilefor2022-5-2537【例【例3-17】按每行輸出】按每行輸出5個(gè)數(shù)的形式輸出個(gè)數(shù)的形式輸出Fibonacci數(shù)列的前數(shù)列的前20項(xiàng)項(xiàng) 。思路:思路:Fibonacci數(shù)列的前幾項(xiàng)是:數(shù)列
18、的前幾項(xiàng)是:1、1、2、3、5、8、13、21、34、。此數(shù)列的變化規(guī)。此數(shù)列的變化規(guī)律是:律是:2022-5-2538f1=1,f2=1并輸出并輸出for (i=3; i1e-6); Console.Write(x);x賦初值賦初值x0=x計(jì)算計(jì)算f計(jì)算計(jì)算f1 計(jì)算計(jì)算x=x0-f/f1當(dāng)當(dāng) |x-x0|10-6時(shí)時(shí)輸出輸出x2022-5-2543【例【例3-19】編程序求】編程序求210000以內(nèi)的完全數(shù)。以內(nèi)的完全數(shù)。 一個(gè)數(shù)的因子(除了這個(gè)數(shù)本身)之和一個(gè)數(shù)的因子(除了這個(gè)數(shù)本身)之和等于該數(shù)本身。等于該數(shù)本身。的的因子因子是是1、2、3,因子和因子和 1+2+32022-5-254
19、4static void main(string args ) int i,j,s; for (i=2; i=10000; i+) s=0; for (j=1; ji; j+) if (i%j=0) s+=j; if (i=s) Console.Write(s); for(i=2;i=10000; i+) s = 0 for (j=1; ji; j+) i%j=0 T F s=s+j i=s T F i是完全數(shù)是完全數(shù)2022-5-2545【例【例3-20】編程序,輸出以下圖形。】編程序,輸出以下圖形。 * * * *2022-5-2546for (i=1; i=4; i+) for (j=1
20、; j=i; j+) 輸出一個(gè)空格輸出一個(gè)空格 for (j=1; j=8- -(2*i- -1); j+) 輸出一個(gè)星號(hào)輸出一個(gè)星號(hào) 換行換行l(wèi)3.2.1 典型實(shí)例一:根據(jù)長(zhǎng)度和面積求矩形的典型實(shí)例一:根據(jù)長(zhǎng)度和面積求矩形的高和寬高和寬 l 【實(shí)例題目【實(shí)例題目】l 使用一根長(zhǎng)度為使用一根長(zhǎng)度為L(zhǎng)厘米的鐵絲,厘米的鐵絲,制作一個(gè)面積為制作一個(gè)面積為S的矩形框,要的矩形框,要求計(jì)算出滿足這種條件的矩形的求計(jì)算出滿足這種條件的矩形的高高h(yuǎn)和寬和寬w。 l【實(shí)例題目【實(shí)例題目】l 我國(guó)古代數(shù)學(xué)家在我國(guó)古代數(shù)學(xué)家在算經(jīng)算經(jīng)中出了一道題:中出了一道題:“雞翁雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢
21、一。百錢一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問(wèn)雞翁、母、雛各幾何?買百雞,問(wèn)雞翁、母、雛各幾何?”意為:公雞每只意為:公雞每只5元,母雞每只元,母雞每只3元,小雞元,小雞3只只1元。用元。用100元買元買100只雞,只雞,問(wèn)公雞、母雞、小雞各多少?要求編寫成控制臺(tái)應(yīng)用程問(wèn)公雞、母雞、小雞各多少?要求編寫成控制臺(tái)應(yīng)用程序。序。 l3.3.1 上機(jī)練習(xí)一:郵包計(jì)費(fèi)程序上機(jī)練習(xí)一:郵包計(jì)費(fèi)程序 l 【練習(xí)【練習(xí)題目題目】l 假定向國(guó)外郵寄包裹收費(fèi)如下計(jì)算:首先,包裹假定向國(guó)外郵寄包裹收費(fèi)如下計(jì)算:首先,包裹重量四舍五入到最近的重量四舍五入到最近的1515克的倍數(shù),然后按表克的倍數(shù)
22、,然后按表 3-3 3-3 收收費(fèi):費(fèi):重量重量( (克)克)收費(fèi)(元)收費(fèi)(元)014.951529.993044.9124559.9146074.91575以上每增加10克,郵費(fèi)增加一元l【練習(xí)【練習(xí)題目題目】l 一輛卡車違反交通規(guī)則,撞死行人,司一輛卡車違反交通規(guī)則,撞死行人,司機(jī)畏罪駕車逃跑。當(dāng)時(shí)有三個(gè)人目擊這一車禍機(jī)畏罪駕車逃跑。當(dāng)時(shí)有三個(gè)人目擊這一車禍的發(fā)生,但都沒(méi)有看清卡車的牌照號(hào)碼,只記的發(fā)生,但都沒(méi)有看清卡車的牌照號(hào)碼,只記住牌照號(hào)碼的部分特征,甲記住牌照號(hào)碼的前住牌照號(hào)碼的部分特征,甲記住牌照號(hào)碼的前兩位數(shù)字是相同的,乙記住牌照號(hào)碼的后兩位兩位數(shù)字是相同的,乙記住牌照號(hào)碼的
23、后兩位數(shù)字是相同的,丙是一位數(shù)學(xué)家,他說(shuō)數(shù)字是相同的,丙是一位數(shù)學(xué)家,他說(shuō)“車牌車牌號(hào)碼肯定是四位數(shù),而且恰好是一個(gè)整數(shù)的平號(hào)碼肯定是四位數(shù),而且恰好是一個(gè)整數(shù)的平方。方?!保⑶冶淹茖?dǎo)出符合該條件的號(hào)碼只,并且丙已推導(dǎo)出符合該條件的號(hào)碼只可能有一個(gè)。根據(jù)這些信息來(lái)判定車牌號(hào)并捉可能有一個(gè)。根據(jù)這些信息來(lái)判定車牌號(hào)并捉拿肇事司機(jī)。要求編寫控制臺(tái)應(yīng)用程序。拿肇事司機(jī)。要求編寫控制臺(tái)應(yīng)用程序。 l【執(zhí)行結(jié)果【執(zhí)行結(jié)果】 至關(guān)重要1 1 一維數(shù)組的定義和引用一維數(shù)組的定義和引用2 2 二維數(shù)組的定義和引用二維數(shù)組的定義和引用3 3 多維數(shù)組定義和引用多維數(shù)組定義和引用4 4 不規(guī)則數(shù)組定義和引用不
24、規(guī)則數(shù)組定義和引用1.一維數(shù)組的定義格式有兩種方式分別為: (1):類型說(shuō)明符 數(shù)組名; (2):類型說(shuō)明符 數(shù)組名=new 類型說(shuō)明符常量表達(dá)式;例如: intint a=1,2,3;a=1,2,3; int int a =new int10; a =new int10; 它表示定義了一個(gè)整形數(shù)組,數(shù)組名為它表示定義了一個(gè)整形數(shù)組,數(shù)組名為a a。 7.1.17.1.1一維數(shù)組的定義一維數(shù)組的定義說(shuō)明: 1.1.數(shù)組名命名規(guī)則和變量名相同,遵循標(biāo)識(shí)符命名規(guī)則。數(shù)組名命名規(guī)則和變量名相同,遵循標(biāo)識(shí)符命名規(guī)則。2.在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即
25、數(shù)組長(zhǎng)度。3.表達(dá)式中可以包括常量和符號(hào)常量,還能包含變量。2.2.一維數(shù)組在內(nèi)存中的存放一維數(shù)組在內(nèi)存中的存放每個(gè)數(shù)據(jù)元素占用每個(gè)數(shù)據(jù)元素占用的字節(jié)數(shù),就是的字節(jié)數(shù),就是基基類型類型的字節(jié)數(shù)的字節(jié)數(shù)一個(gè)元素占一個(gè)元素占4個(gè)個(gè)字節(jié)字節(jié)一維數(shù)組:一維數(shù)組: floatfloat markmark=; ;mark0mark1mark2mark3. . . .mark9986.592.077.552.0. . . .94.0低地址低地址 高地址高地址注意:注意:定義數(shù)組時(shí)用到的“常量表達(dá)式數(shù)組名” 和引用數(shù)組元素時(shí)用到的“數(shù)組名下標(biāo)” 是有區(qū)別的。例如例如 int a=new int6; t=a6;
26、 7.1.27.1.2一維數(shù)組元素的引用一維數(shù)組元素的引用1.1.數(shù)組元素的引用方式數(shù)組元素的引用方式數(shù)組名下標(biāo)下標(biāo)可以是整型常量或整型表達(dá)式。例如例如: : a0=a5+a7-a2*3對(duì)數(shù)組元素初始化的實(shí)現(xiàn)方法:對(duì)數(shù)組元素初始化的實(shí)現(xiàn)方法: 1.1.在定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值。在定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值。例如例如:int:int a =0,1,2,3,4,5,6,7,8,9;a =0,1,2,3,4,5,6,7,8,9;將數(shù)組元素的初值依次放在一對(duì)花括弧內(nèi)。經(jīng)過(guò)上面的定義和初始化之后,a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9。
27、 7.1.37.1.3一維數(shù)組的初始化一維數(shù)組的初始化 3. 3. 如果想使一個(gè)數(shù)組中全部元素值為如果想使一個(gè)數(shù)組中全部元素值為0 0,可以寫成,可以寫成: : intint a =0,0,0,0,0,0,0,0,0,0;a =0,0,0,0,0,0,0,0,0,0; 或或intinta=new int10;a=new int10; 不不能寫成能寫成:intint a =0a =0* *10;10; 注意注意:C#:C#語(yǔ)言中數(shù)組的默認(rèn)值為語(yǔ)言中數(shù)組的默認(rèn)值為0;0; 2. 2. 可以只給一部分元素賦值。可以只給一部分元素賦值。例如例如: int: int a =new int10;a =ne
28、w int10; for(i=0;i5;i+) ai=i;f0=1; f0=1; f1=1;f1=1;for(ifor(i=2;i20;i+)=2;i20;i+)f fi i=f=fi-2i-2+f+fi-1i-1; ;for(i=0;i20;i+)for(i=0;i20;i+) Console.Write(f Console.Write(fi i);); if(i+1)%5=0) if(i+1)%5=0) Console.Write Console.Write(n);n); / /* *ForFor循環(huán)結(jié)束循環(huán)結(jié)束* */ /運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下: 1 1 2 3 51 1 2 3 5
29、 8 13 21 34 55 8 13 21 34 55 89 144 233 377 610 89 144 233 377 610 987 1597 2584 4181 6765 987 1597 2584 4181 6765if語(yǔ)句用來(lái)控制換行,每行輸出5個(gè)數(shù)據(jù)。第二趟比較如果有n個(gè)數(shù),則要進(jìn)行n-1趟比較。在第1趟比較中要進(jìn)行n-1次兩兩比較,在第j趟比較中要進(jìn)行n-j次兩兩比較。程序流程圖如下:程序流程圖如下:for(i=0;i10;i+)ai=Convert.ToInt32(Console.ReadLine();for(j=0;j9;j+) for(i=0;iai+1) t=ai;a
30、i=ai+1;ai+1=t; Console.Write(“排序后:n0”,aj); / /* *程序結(jié)束程序結(jié)束* */ /程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下:input 10 numbers:input 10 numbers:1 0 4 8 12 65 -76 100 -45 1231 0 4 8 12 65 -76 100 -45 123the sorted numbers:the sorted numbers:-76 -45 0 1 4 8 12 65 100 123-76 -45 0 1 4 8 12 65 100 1237.2.17.2.1二維數(shù)組的定義二維數(shù)組的定義二維數(shù)組定義的
31、格式有兩種分別為二維數(shù)組定義的格式有兩種分別為: : (1):類型說(shuō)明符類型說(shuō)明符, 數(shù)組名;數(shù)組名; (2):類型說(shuō)明符類型說(shuō)明符 ,數(shù)組名,數(shù)組名=new 類型說(shuō)明符類型說(shuō)明符常量表達(dá)式常量表達(dá)式,常常量表達(dá)式量表達(dá)式;例如:例如:定義a為34(3行4列)的數(shù)組,b為510(5行10列)的數(shù)組。如下:New float 3,4, 5,10;注意:注意:我們可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個(gè)一維數(shù)組。例如:例如:可以把a(bǔ)看作是一個(gè)一維數(shù)組,它有3個(gè)元素:a0、a1、a2,每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組。 二維數(shù)組中的元素在內(nèi)存中的排列順序是:按行存放,即先順序存
32、放第一行的元素,再存放第二行的元素 b b0,00,0b b0,10,1b b0,20,2b b1,01,0b b1,11,1b b1,21,2b b2,02,0b b2,12,1b b2,22,23003000 0H H3003002 2H H3003004 4H H3003006 6H H3003008 8H H300300A AH H300300C CH H300300E EH H30301010H H例如:例如:整型數(shù)組整型數(shù)組 b3,3= 1,2,3, 4,5,6, 7,8,9 ;123456789 a0,0,0a0,0,1a0,0,2a0,0,3a0,0,0a0,0,1a0,0,2
33、a0,0,3 a0,1,0a0,1,1a0,1,2a0,1,3 a0,1,0a0,1,1a0,1,2a0,1,3 a0,2,0a0,2,1a0,2,2a0,2,3 a0,2,0a0,2,1a0,2,2a0,2,3 a1,0,0a1,0,1a1,0,2a1,0,3 a1,0,0a1,0,1a1,0,2a1,0,3 a1,1,0a1,1,1a1,1,2a1,1,3 a1,1,0a1,1,1a1,1,2a1,1,3 a1,2,0a1,2,1a1,2,2a1,2,3 a1,2,0a1,2,1a1,2,2a1,2,3三維數(shù)組的元素排列順序三維數(shù)組的元素排列順序二維數(shù)組元素的表示形式為:數(shù)組名下標(biāo)數(shù)組名下
34、標(biāo), ,下標(biāo)下標(biāo)例如:例如: a2,3下標(biāo)可以是整型表達(dá)式,如 a2-1,2*2-1數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值例如:例如:b b1,21,2=a=a2,32,3/2/2常出現(xiàn)的錯(cuò)誤有:常出現(xiàn)的錯(cuò)誤有: int a3,4; / /* * 定義定義a a為為3 34 4的數(shù)組的數(shù)組 * */ / a3, ,4=3; 在使用數(shù)組元素時(shí),應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。可以用下面的方法對(duì)二維數(shù)組初始化:可以用下面的方法對(duì)二維數(shù)組初始化:數(shù)據(jù)類型 常量表達(dá)式1,常量表達(dá)式2數(shù)組名 初始化數(shù)據(jù);分行給二維數(shù)組賦初值。例如:例如: intint , , a =1a =1,2 2,3
35、 3,44,55,6 6,7 7,88,99,1010,1111,12; 12; 7.2.3 7.2.3二維數(shù)組的引用二維數(shù)組的引用注意:初始化時(shí)必須要將所有的項(xiàng)都付值.7.2.47.2.4二維數(shù)組程序舉例二維數(shù)組程序舉例例例7.4 7.4 將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè) 二維數(shù)組中。二維數(shù)組中。Using System;Static void main(string args) int 2,3 a =1,2,3,4,5,6; int 3,2 b, i,j; Console.Write(array a:n); for (i=0;i=1;i+)
36、for (j=0;j=2;j+) 例如:例如:a= 1 2 3 1 4a= 1 2 3 1 4 4 5 6 b= 2 5 4 5 6 b= 2 5 3 6 3 6 Console.Write(ai,j); bj,i=ai,j; Console.Write(n); Console.Write(array b:n);for (i=0;i=2;i+) for(j=0;j=1;j+) Console.Write(bi,j); Console.Write(n); / /* *程序結(jié)束程序結(jié)束* */ /運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:array a:array a: 1 2 3 1 2 3 4 5 6 4
37、5 6array b:array b: 1 4 1 4 2 5 2 5 3 6 6 例例7.5: 7.5: 有一個(gè)有一個(gè)34的矩陣,要求編程序求出其中值最大的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。 N-S流程圖表示算法流程圖表示算法 如下:如下:程序:程序: Using System;Static void Main(string args) int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6, -10,10,-5,2; max=a0,0; for (i=0;i=2;i+) for (j=0;jmax) max=ai,j; row=i; colum=j; Console.Write(“0,1,2n”, max,row,colum); /*程序結(jié)束程序結(jié)束*/ 7.3.17.3.1字符數(shù)組的定義字符數(shù)組的定義定義方法與前面介紹的類似。例如:char c=new char10;c0=I;c1= ;c2=a;c3=m;c4= ;c5=h;c6=a;c7=p;c8=p;c9=y;對(duì)字符數(shù)組初始化,可逐個(gè)字符賦給數(shù)組中各元素。對(duì)字符數(shù)組初始化,可逐個(gè)字符賦給數(shù)組中各元素。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 摩托車安全知識(shí)講解考核試卷
- 雙十一玩家購(gòu)買心理
- 寧夏回族銀川市西夏區(qū)2025年數(shù)學(xué)三下期末統(tǒng)考模擬試題含解析
- 石家莊市欒城縣2025屆三下數(shù)學(xué)期末統(tǒng)考模擬試題含解析
- 山西財(cái)經(jīng)大學(xué)華商學(xué)院《西班牙語(yǔ)詞匯》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西省九江市彭澤縣重點(diǎn)達(dá)標(biāo)名校2024-2025學(xué)年初三下學(xué)期第二次周考物理試題含解析
- 南昌航空大學(xué)《建筑設(shè)計(jì)A2》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東理工大學(xué)《微波與天線》2023-2024學(xué)年第二學(xué)期期末試卷
- 九江學(xué)院《中國(guó)民俗文化》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林省長(zhǎng)春市榆樹市一中2025屆高三第二次質(zhì)量調(diào)查(二模)生物試題試卷含解析
- 施工場(chǎng)地治安管理計(jì)劃和突發(fā)治安事件緊急預(yù)案
- JGT471-2015 建筑門窗幕墻用中空玻璃彈性密封膠
- (完整word版)勞動(dòng)合同書(電子版)
- 讀萬(wàn)卷書 行萬(wàn)里路 辯論賽過(guò)程
- 初中英語(yǔ)詞匯表(帶音標(biāo))
- 順豐快遞人員獎(jiǎng)懲制度
- 2022版新能源場(chǎng)站“無(wú)人值守”建設(shè)指導(dǎo)指南
- 2023年高速公路收費(fèi)員面試
- 家長(zhǎng)課堂(預(yù)防接種)
- 丙烷安全技術(shù)說(shuō)明書msds
- 電力拖動(dòng)自動(dòng)控制系統(tǒng)-第五版 課后習(xí)題答案
評(píng)論
0/150
提交評(píng)論