




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、l順序結(jié)構(gòu)l選擇結(jié)構(gòu):if語句、switch語句l循環(huán)結(jié)構(gòu):for語句、while語句、do.while語句和foreach語句l跳轉(zhuǎn)語句:goto、break、continue、return、throwlC#異常處理機制l創(chuàng)建和引發(fā)異常銀行的ATM需要不停地為不同的客戶服務(wù)我們每天的生活和學(xué)習(xí)需要重復(fù)生活中充滿了循環(huán)食堂食堂宿舍宿舍教室教室ATM業(yè)務(wù)ATM業(yè)務(wù)ATM業(yè)務(wù)ATM業(yè)務(wù)ATM業(yè)務(wù)食堂食堂食堂食堂宿舍宿舍食堂食堂宿舍宿舍食堂食堂教室教室宿舍宿舍食堂食堂 在編寫程序過程中,往往出現(xiàn)相同類型操作需要重復(fù)出現(xiàn),如實現(xiàn)1+2+100,則需要做99次加法,這類問題使用循環(huán)語句解決。即循環(huán)語句用
2、于實現(xiàn)語句塊的重復(fù)執(zhí)行。C#中提供了四種不同的循環(huán)機制:for循環(huán)while循環(huán)dowhile循環(huán)foreach循環(huán)foreach循環(huán)常用在遍歷數(shù)組時用到。for循環(huán)語句 for循環(huán)常常用于已知循環(huán)次數(shù)的情況,使用該循環(huán)時,測試是否滿足某個條件,如果滿足條件,則進(jìn)入下一次循環(huán),否則,退出該循環(huán)。格式:for(表達(dá)式1;布爾表達(dá)式2;表達(dá)式3) 單語句或 循環(huán)語句序列 三元運算表達(dá)式功能:truefalse語句布爾表達(dá)式21 計算表達(dá)式1;2 計算布爾表達(dá)式2,如果結(jié)果為true, 則執(zhí)行語句,再計算表達(dá)式3,然后重復(fù)本過程; 如果表達(dá)式2為false,則退出循環(huán)表達(dá)式1表達(dá)式31 計算表達(dá)式1
3、;2 計算布爾表達(dá)式2,如果結(jié)果為true, 則執(zhí)行語句,再計算表達(dá)式3,然后重復(fù)本過程;1 計算表達(dá)式1; 如果表達(dá)式2為false,則退出循環(huán)2 計算布爾表達(dá)式2,如果結(jié)果為true, 則執(zhí)行語句,再計算表達(dá)式3,然后重復(fù)本過程;1 計算表達(dá)式1; 如果表達(dá)式2為false,則退出循環(huán)2 計算布爾表達(dá)式2,如果結(jié)果為true, 則執(zhí)行語句,再計算表達(dá)式3,然后重復(fù)本過程;1 計算表達(dá)式1; 如果表達(dá)式2為false,則退出循環(huán)2 計算布爾表達(dá)式2,如果結(jié)果為true, 則執(zhí)行語句,再計算表達(dá)式3,然后重復(fù)本過程;1 計算表達(dá)式1;表達(dá)式1for(for(表達(dá)式表達(dá)式1 1;布爾表達(dá)式;布爾
4、表達(dá)式2 2;表達(dá)式;表達(dá)式3)3) 語句語句表達(dá)式1 【例子例子】計算計算1+2+3+100。使用。使用for語句實現(xiàn)語句實現(xiàn)。分析分析1:定義定義sum,連續(xù)寫,連續(xù)寫sum=sum+n;分析分析2:該問題屬于重復(fù)執(zhí)行加法的問題,并且該問題屬于重復(fù)執(zhí)行加法的問題,并且參與運算的兩個操作數(shù)不斷的按規(guī)律增加。參與運算的兩個操作數(shù)不斷的按規(guī)律增加。該類問題可以通過循環(huán)進(jìn)行解決。該類問題可以通過循環(huán)進(jìn)行解決。sum = sum + i;sum = 0;sum = sum + 1;sum = sum + 2;sum = sum + 3;.sum = sum + 100;Console.WriteLi
5、ne(sum);寫完這寫完這100條語句,就條語句,就算出來了算出來了你想累死我啊!你想累死我啊!sum = sum + i;sum = 0;sum = sum + 1;sum = sum + 2;sum = sum + 3;.sum = sum + 100;Console.WriteLine(sum);sum = sum + i;sum = 0;sum = sum + 1;sum = sum + 2;sum = sum + 3;.sum = sum + 100;Console.WriteLine(sum);sum = sum + i;sum = 0;sum = sum + 1;sum = s
6、um + 2;sum = sum + 3;.sum = sum + 100;Console.WriteLine(sum);寫完這寫完這100條語句,就條語句,就算出來了算出來了你想累死我啊!你想累死我??!累加器累加器寫完這寫完這100條語句,就條語句,就算出來了算出來了sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);i:1i:2i:3i:100i:101sum = 0; i = 1;
7、sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);i:1sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum +
8、i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);sum = 0;sum = sum + 1;sum = sum + 2;sum = sum + 3;.sum = sum + 100;Console.WriteLine(sum);sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum
9、);i:1i:2i:3i:100i:101sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);sum = 0; i = 1;su
10、m = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;Console.WriteLine(sum);循環(huán)條件:i=100這兩條語句需要循環(huán)執(zhí)行int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);運行流程分析int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);int sum =
11、 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);int sum =
12、 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum); 在窗體設(shè)計圖上,雙擊按鈕在窗體設(shè)計圖上,雙擊按鈕button1編寫編寫【計算計算】按按鈕的鈕的Click(單擊)事件代碼為:(單擊)事件代碼為:private void button1_Click(object sender, System.EventArgs e) int sum, k; sum=0; for(k
13、=1;k=100;k=k+1) sum=sum+k; label1.Text=從從1加到加到100值為值為+sum.ToString(); 程序的運行結(jié)果如圖所示的左圖,單擊程序的運行結(jié)果如圖所示的左圖,單擊“計算計算”按鈕,將在標(biāo)簽上顯示運行結(jié)果。按鈕,將在標(biāo)簽上顯示運行結(jié)果。 程序運行結(jié)果【例子】計算n!,假設(shè)n=10。分析:該例實現(xiàn)階乘的運算,可以使用改變乘數(shù)的值進(jìn)行實現(xiàn),使用循環(huán)可以方便的實現(xiàn)該類問題。程序的運行結(jié)果如圖所示。計算n!n!=n*(n-1)*2*1private void button1_Click(object sender, System.EventArgs e) i
14、nt sum,k; sum=1; for(k=1;k=10;k+) sum=sum*k; textBox1.Text=sum.ToString();編寫【計算】按鈕的Click(單擊)事件代碼為:static void Main(string args) int s; for (int i = 1; i = 10; i+) s = i * i; Console.Write(0t, s); int i; for(i=0; i100 ; i+)Console.WriteLine(i);01234.9899運行結(jié)果:運行結(jié)果:賦初值01234.9899循環(huán)體被運行100次,循環(huán)變量依次為0 99改變
15、循環(huán)變量i: 循環(huán)變量循環(huán)條件int i; for(i=1; i=100; i+) Console.WriteLine(i);12345.99100運行結(jié)果:循環(huán)體也被運行循環(huán)體也被運行100次,次,循環(huán)變量依次為循環(huán)變量依次為1 100int i; for(i=1; i=100; i+) Console.WriteLine(i);12345.99100int i; for(i=1; i=100; i+) Console.WriteLine(i);12345.99100for( i=1 ; i=100 ; i+)Console.WriteLine(i);可以為空可以為空可以為空,認(rèn)為是true
16、int i=0;形成死循環(huán)分號不能省略哦!for(int i=1; i=100; i+) sum = sum + i;在在for中定義的變量只在該循環(huán)語句內(nèi)有效中定義的變量只在該循環(huán)語句內(nèi)有效,在循環(huán)語句外不能訪問,在循環(huán)語句外不能訪問可以在這里定義變量for(int i=1; i=100; i+) sum = sum + i;在在for中定義的變量只在該循環(huán)語句內(nèi)有效中定義的變量只在該循環(huán)語句內(nèi)有效,在循環(huán)語句外不能訪問,在循環(huán)語句外不能訪問for(int i=1; i=100; i+) sum = sum + i;可以用于可以用于不知道循環(huán)次數(shù)不知道循環(huán)次數(shù)的情況;用于在循環(huán)時判斷的情況;
17、用于在循環(huán)時判斷是否滿足某個條件。是否滿足某個條件。while循環(huán)語句的格式為:循環(huán)語句的格式為:while (while (布爾表達(dá)式布爾表達(dá)式) ) 單語句或者語句塊單語句或者語句塊 布爾條件表達(dá)式是每次循環(huán)開始前進(jìn)行判斷的條件布爾條件表達(dá)式是每次循環(huán)開始前進(jìn)行判斷的條件,當(dāng)條件表達(dá)式的值為真時,執(zhí)行循環(huán);否則,退,當(dāng)條件表達(dá)式的值為真時,執(zhí)行循環(huán);否則,退出循環(huán)。該語句結(jié)構(gòu)的流程圖如圖所示。出循環(huán)。該語句結(jié)構(gòu)的流程圖如圖所示。 while( while( 布爾表達(dá)式布爾表達(dá)式) ) 語句語句格式:功能:1 如果布爾表達(dá)式為false,直接跳出循環(huán);2 如果為true, 則執(zhí)行語句,并繼續(xù)
18、第1步布爾表達(dá)式?語句falsetrue【例子】設(shè)有一張厚為x mm,面積足夠大的紙,將它不斷地對折。試問對折多少次后,其厚度可達(dá)珠穆朗瑪峰的高度(8844.43 m)。設(shè)對折后紙的厚度為h mm,計數(shù)器為n。在沒有對折時,紙厚為x mm,每對折一次,其厚度是上一次的2倍,在未到達(dá)8844.43 m時,重復(fù)對折。在程序中,紙的厚度就是對折后紙的厚度,所以用一個變量h。建立應(yīng)用程序用戶界面與設(shè)置對象屬性,如圖所示。用戶界面及程序運行結(jié)果private void button1_Click(object sender, System.EventArgs e) int n=0; float h; h
19、=float.Parse(textBox1.Text); while (h8844430)/未到達(dá)未到達(dá)8844.43 m時,重復(fù)對折時,重復(fù)對折 n = n + 1; /計數(shù)器為計數(shù)器為n 對折次數(shù)對折次數(shù) h = 2 * h ;/每對折一次,其厚度是上一次的每對折一次,其厚度是上一次的2倍倍 textBox2.Text = n.ToString();sum = 0; i = 1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;sum = sum + i; i = i+1;.sum = sum + i; i = i+1;cout sum endl;
20、循環(huán)條件循環(huán)體語句5050運行結(jié)果:505050505050i=1;while(i=100) sum = sum + i; i+;1=100100=100101=100truetruefalse.1=100true100=1001=100false100=1001=100101=100100=1001=100在在whilewhile循環(huán)的循環(huán)體中一般應(yīng)該有使循環(huán)條循環(huán)的循環(huán)體中一般應(yīng)該有使循環(huán)條件不成立的語句,否則會形成件不成立的語句,否則會形成“死循環(huán)死循環(huán)”; ;i=1;while(i=100) sum = sum + i; i=i+1;這個語句讓循環(huán)條件可這個語句讓循環(huán)條件可以不成立以不
21、成立死循環(huán)死循環(huán):不會自動不會自動終止的循環(huán)終止的循環(huán)i=1;while(i=100) sum = sum + i; i=i+1;死循環(huán)死循環(huán):不會自動不會自動終止的循環(huán)終止的循環(huán)i=1;while(i=100) sum = sum + i; i=i+1;i=1;while(i=100) sum = sum + i; / i=i+1;去掉該語句,形成死循環(huán)運行時,死循環(huán)占用大量CPU時間i=1;while(i=100) sum = sum + i; / i=i+1;i=1;while(i=100) sum = sum + i; / i=i+1;while( true ) Console.Wri
22、teLine( Hello);HelloHelloHelloHelloHelloHelloHello條件恒為條件恒為truewhile( true ) Console.WriteLine( Hello);HelloHelloHelloHelloHelloHelloHellowhile( true ) Console.WriteLine( Hello);int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);sum = 0; i=1;while(i=100) sum = sum + i; i = i +
23、 1;Console.WriteLine(sum);int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;Console.WriteLine(sum);sum = 0; i=1;while(i=100) sum = sum + i; i = i + 1;Console.WriteLine(sum);for循環(huán)與循環(huán)與while循環(huán),功能完全相同(循環(huán),功能完全相同(for可以轉(zhuǎn)化為可以轉(zhuǎn)化為while, while也可以轉(zhuǎn)為也可以轉(zhuǎn)為for)int sum = 0, i;for( i=1 ; i=100 ; i+) sum = sum + i;
24、Console.WriteLine(sum);sum = 0; i=1;while(i0) sum += x % 10; x /= 10;Console.WriteLine(sum);算法思路:算法思路:x % 10 可以得到個位數(shù)字,x = x / 10可以得到去掉個位數(shù)字后剩下的數(shù)字。重復(fù)這個過程直到x變?yōu)?,可以依次得到所有數(shù)字學(xué)習(xí)編程語言的同時,也學(xué)習(xí)編程語言的同時,也要學(xué)會用要學(xué)會用“計算機的思維計算機的思維方式方式”,掌握計算機解決,掌握計算機解決問題的方法:問題的方法:算法算法sum = 0;while(x 0) sum += x % 10; x /= 10;Console.Wr
25、iteLine(sum);算法思路:算法思路:x % 10 可以得到個位數(shù)字,x = x / 10可以得到去掉個位數(shù)字后剩下的數(shù)字。重復(fù)這個過程直到x變?yōu)?,可以依次得到所有數(shù)字sum = 0;while(x 0) sum += x % 10; x /= 10;Console.WriteLine(sum);算法思路:算法思路:x % 10 可以得到個位數(shù)字,x = x / 10可以得到去掉個位數(shù)字后剩下的數(shù)字。重復(fù)這個過程直到x變?yōu)?,可以依次得到所有數(shù)字dowhiledowhile循環(huán)非常類似于循環(huán)非常類似于whilewhile循環(huán)。循環(huán)。 差別在于差別在于whilewhile循環(huán)的測試條件
26、在每一次循環(huán)開始循環(huán)的測試條件在每一次循環(huán)開始時執(zhí)行,而時執(zhí)行,而dowhiledowhile循環(huán)的測試條件在每一次循環(huán)循環(huán)的測試條件在每一次循環(huán)體結(jié)束時進(jìn)行判斷。同樣的,體結(jié)束時進(jìn)行判斷。同樣的,dowhiledowhile可以解決一可以解決一些循環(huán)問題,但使用的頻率較少。些循環(huán)問題,但使用的頻率較少。dowhiledowhile語法的一般格式為:語法的一般格式為: do 語句語句 while (布爾表達(dá)式布爾表達(dá)式);dodo 語句語句while(while(布爾表達(dá)式布爾表達(dá)式););功能:truefalse語句表達(dá)式?1 執(zhí)行循環(huán)體語句;2 計算表達(dá)式,如果為true, 并繼續(xù)第1步;
27、 如果為false,則退出循環(huán)1 執(zhí)行循環(huán)體語句;2 計算表達(dá)式,如果為true, 并繼續(xù)第1步; 如果為false,則退出循環(huán)1 執(zhí)行循環(huán)體語句;2 計算表達(dá)式,如果為true, 并繼續(xù)第1步;dodo 語句語句while(while(布爾表達(dá)式布爾表達(dá)式);); 如果為false,則退出循環(huán)1 執(zhí)行循環(huán)體語句;2 計算表達(dá)式,如果為true, 并繼續(xù)第1步;【例子】使用dowhile語句實現(xiàn)1+2+3+100。int i=1, sum=0;do sum = sum + i; i = i + 1; while(i = 100);Console.WriteLine(sum);是do.while
28、語句的一部分,不要遺忘5050運行結(jié)果:int i=1, sum=0;do sum = sum + i; i = i + 1; while(i = 100);Console.WriteLine(sum);5050int i=1, sum=0;do sum = sum + i; i = i + 1; while(i = 100);Console.WriteLine(sum);int i=20;while(i10) Console.WriteLine(i); i+;int i=20;do Console.WriteLine(i); i+; while(i10);運行結(jié)果:20運行結(jié)果:int i=
29、20;while(i10) Console.WriteLine(i); i+;int i=20;do Console.WriteLine(i); i+; while(i10);int i=20;while(i10) Console.WriteLine(i); i+;20int i=20;do Console.WriteLine(i); i+; while(i10);int i=20;while(i10) Console.WriteLine(i); i+;int i=20;while(i10) Console.WriteLine(i); i+;int i=20;do Console.WriteL
30、ine(i); i+; while(i10);int i=20;while(i10) Console.WriteLine(i); i+; foreachforeach語句用于循環(huán)訪問數(shù)組或集合以獲取所需信息語句用于循環(huán)訪問數(shù)組或集合以獲取所需信息。當(dāng)為數(shù)組或集合中的所有元素完成迭代后,控制傳遞給foreach塊之后的下一個語句 foreach( foreach( 類型名稱類型名稱 變量名稱變量名稱 in in 數(shù)組或集合名稱數(shù)組或集合名稱) ) 循環(huán)體語句序列循環(huán)體語句序列; ; 【例例4.174.17】使用foreach顯示整數(shù)數(shù)組的內(nèi)容 當(dāng)一個循環(huán)(稱為當(dāng)一個循環(huán)(稱為“外循環(huán)外循環(huán)”)的
31、循環(huán)語句)的循環(huán)語句序列內(nèi)包含另一個循環(huán)(稱為序列內(nèi)包含另一個循環(huán)(稱為“內(nèi)循環(huán)內(nèi)循環(huán)”),稱為,稱為循環(huán)的嵌套循環(huán)的嵌套,這種語句結(jié)構(gòu)稱為多重,這種語句結(jié)構(gòu)稱為多重循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)。 內(nèi)循環(huán)中還以包含循環(huán),形成多層循環(huán)(循內(nèi)循環(huán)中還以包含循環(huán),形成多層循環(huán)(循環(huán)嵌套的層數(shù)理論上無限制)。環(huán)嵌套的層數(shù)理論上無限制)。 三種循環(huán)(三種循環(huán)(whilewhile循環(huán)、循環(huán)、dowhiledowhile循環(huán)、循環(huán)、forfor循環(huán))可以互相嵌套。循環(huán))可以互相嵌套。在多重循環(huán)中,在多重循環(huán)中,需要注意的是循環(huán)語句所在循環(huán)的層數(shù)。需要注意的是循環(huán)語句所在循環(huán)的層數(shù)。循環(huán)體內(nèi)的語句也可以是任意循環(huán)語句
32、int i; for(i=1; i=100; i+)j=0; while(j!=4) Console.WriteLine(j+);內(nèi)循環(huán)內(nèi)循環(huán)外循環(huán)外循環(huán)【例子例子】編程實現(xiàn)九九乘法表。編程實現(xiàn)九九乘法表。分析:分析:本例中實現(xiàn)每一個一位數(shù)本例中實現(xiàn)每一個一位數(shù)i i顯示從顯示從1 1乘到乘到i i,對,對于于i i的取值要從的取值要從1 1取到取到9 9,所以可以使用兩重循環(huán)實,所以可以使用兩重循環(huán)實現(xiàn),程序設(shè)計如圖所示。現(xiàn),程序設(shè)計如圖所示。九九乘法表九九乘法表本例的界面設(shè)計如圖,使用本例的界面設(shè)計如圖,使用label1label1控件實現(xiàn)乘法表控件實現(xiàn)乘法表的顯示。本例使用兩重循環(huán)實現(xiàn),
33、其中外層循環(huán)的顯示。本例使用兩重循環(huán)實現(xiàn),其中外層循環(huán)實現(xiàn)乘法表中第二乘數(shù)實現(xiàn)乘法表中第二乘數(shù)i i取值范圍為取值范圍為1 1到到9 9,內(nèi)層循,內(nèi)層循環(huán)在外層循環(huán)的基礎(chǔ)上計算第一個乘數(shù)環(huán)在外層循環(huán)的基礎(chǔ)上計算第一個乘數(shù)k k的取值范的取值范圍為圍為1 1到到i i,其乘積以及表達(dá)式在,其乘積以及表達(dá)式在labellabel控件中顯示控件中顯示。運行結(jié)果如圖所示。運行結(jié)果如圖所示。【九九乘法表九九乘法表】按鈕的按鈕的ClickClick(單擊)事件代碼為(單擊)事件代碼為:private void button1_Click(object sender, System.EventArgs e)
34、 label1.Text=; string s=; int sum; for(int i=1;i10;i=i+1) s=; for(int k=1;k=i;k=k+1) sum=k*i; s=s+k.ToString()+i.ToString()+=+sum.ToString()+; label1.Text+=s+n; / 顯示并換行顯示并換行 N! = 1*2*3*N,稱為N的階乘例:4! = 1*2*3*4 = 24計算N的階乘的算法:mul = 1;for(i=1; i=N; i+) mul *= i;/ 循環(huán)結(jié)束后,mul 保存 N!N! = 1*2*3*N,稱為N的階乘例:4! =
35、1*2*3*4 = 24計算N的階乘的算法:mul = 1;for(i=1; i=N; i+) mul *= i;/ 循環(huán)結(jié)束后,mul 保存 N!static void Main(string args) long s = 0; long m; for (int i = 1; i = 10;i+) m = 1; for (int j = 1; j = i; j+) m *= j; s = s + m; / 累加到變量累加到變量 s Console.WriteLine(1!+2!+3!+.+10!=0, s); 避免內(nèi)外循環(huán)的變量沖突避免內(nèi)外循環(huán)的變量沖突避免內(nèi)外循環(huán)的變量沖突計算計算i的階乘
36、到變量的階乘到變量m使用跳轉(zhuǎn)語句執(zhí)行分支,可以使程序執(zhí)行跳轉(zhuǎn)到程序中其它部分。C#中提供四種轉(zhuǎn)移語句: 。 gotogoto語句可以將程序控制直接轉(zhuǎn)移給標(biāo)語句可以將程序控制直接轉(zhuǎn)移給標(biāo)簽制定的語句。但由于簽制定的語句。但由于gotogoto語句改變了程序語句改變了程序的正常流程,使得程序特別容易出錯,所以的正常流程,使得程序特別容易出錯,所以盡量不要用。而且,用盡量不要用。而且,用gotogoto語句實現(xiàn)的循環(huán)語句實現(xiàn)的循環(huán)完全可以用循環(huán)語句實現(xiàn),因此,完全可以用循環(huán)語句實現(xiàn),因此,gotogoto語句語句很少使用。很少使用。goto 標(biāo)號.標(biāo)號:.功能:控制流程直接轉(zhuǎn)到指定標(biāo)號處標(biāo)號可以在g
37、oto之前或之后。但必須在同一個方法內(nèi)goto 標(biāo)號.標(biāo)號:.控制流程直接轉(zhuǎn)到指定標(biāo)號處標(biāo)號可以在goto之前或之后。但必須在同一個方法內(nèi)goto 標(biāo)號.標(biāo)號:.控制流程直接轉(zhuǎn)到指定標(biāo)號處using System;class Program static void Main(string args) int i = 1, sum = 0; Loop: sum += i; i+; if (i = 100) goto Loop; Console.WriteLine(1+2+3+.+100=0, sum); Loop是自定義的標(biāo)號(屬于標(biāo)識符)例:找到兩個數(shù),乘積為例:找到兩個數(shù),乘積為45,并且兩
38、個數(shù)都小于,并且兩個數(shù)都小于10,輸出這兩個數(shù),輸出這兩個數(shù)static void Main(string args) int i=0, j=0; for (i = 1; i 10; i+) for (j = 1; j 10; j+) if (i * j = 45) goto end; end: Console.WriteLine(0*1=2, i, j, i*j); 退出多重循環(huán),是C#保留goto語句的最大價值只能從循環(huán)內(nèi)層往外層跳轉(zhuǎn),不能從外層往內(nèi)層跳轉(zhuǎn)退出多重循環(huán),是C#保留goto語句的最大價值只能從循環(huán)內(nèi)層往外層跳轉(zhuǎn),不能從外層往內(nèi)層跳轉(zhuǎn) 經(jīng)驗證明,使用經(jīng)驗證明,使用gotogot
39、o語句實現(xiàn)循環(huán),破語句實現(xiàn)循環(huán),破環(huán)了程序的可讀性。環(huán)了程序的可讀性。 現(xiàn)代程序設(shè)計中,不提倡使用現(xiàn)代程序設(shè)計中,不提倡使用gotogoto來完來完成循環(huán)。保留成循環(huán)。保留gotogoto語句,應(yīng)該僅僅用于語句,應(yīng)該僅僅用于跳出多重循環(huán)這個功能。跳出多重循環(huán)這個功能。用于用于switchswitch語句和循環(huán)語句語句和循環(huán)語句(while(while、do-while do-while 、 for for 、foreach)foreach)語句中,用于跳出所在的語句中,用于跳出所在的switchswitch或者循環(huán)語句或者循環(huán)語句break;例:例:break 跳出跳出 for語句語句int
40、i;for(i=1; i=100; i+) Console.WriteLine(i); if(i = 5) break;Console.WriteLine(Finished);12345Finished輸出結(jié)果:輸出結(jié)果:用于用于switchswitch語句和循環(huán)語句語句和循環(huán)語句(while(while、do-while do-while 、 for for 、foreach)foreach)語句中,用于跳出所在的語句中,用于跳出所在的switchswitch或者循環(huán)語句或者循環(huán)語句break;例:例:break 跳出跳出 for語句語句int i;for(i=1; i=100; i+) C
41、onsole.WriteLine(i); if(i = 5) break;Console.WriteLine(Finished);用于用于switchswitch語句和循環(huán)語句語句和循環(huán)語句(while(while、do-while do-while 、 for for 、foreach)foreach)語句中,用于跳出所在的語句中,用于跳出所在的switchswitch或者循環(huán)語句或者循環(huán)語句break;輸出結(jié)果:輸出結(jié)果:例:例:break 跳出跳出 for語句語句int i;for(i=1; i=100; i+) Console.WriteLine(i); if(i = 5) break
42、;Console.WriteLine(Finished);用于用于switchswitch語句和循環(huán)語句語句和循環(huán)語句(while(while、do-while do-while 、 for for 、foreach)foreach)語句中,用于跳出所在的語句中,用于跳出所在的switchswitch或者循環(huán)語句或者循環(huán)語句break;12345Finished例:例:break 跳出跳出 for語句語句int i;for(i=1; i=100; i+) Console.WriteLine(i); if(i = 5) break;Console.WriteLine(Finished);用于用于
43、switchswitch語句和循環(huán)語句語句和循環(huán)語句(while(while、do-while do-while 、 for for 、foreach)foreach)語句中,用于跳出所在的語句中,用于跳出所在的switchswitch或者循環(huán)語句或者循環(huán)語句break;只能夠退出一層只能夠退出一層!使用goto 可以退出多層for(.; .; .) for(; ;) . break; . Console.WriteLine(n);算法:輸入n從2到n-1試驗是否被n整除。如果任意一個能夠整除,則不是素數(shù)如果全部試驗都不能整除,則為素數(shù)素數(shù):大于1的正整數(shù),如果除了1和它本身,沒有其它正因子算
44、法:輸入n從2到n-1試驗是否被n整除。如果任意一個能夠整除,則不是素數(shù)如果全部試驗都不能整除,則為素數(shù)輸入n;isPrime = true;for(i=2; in; i+) if( n% i=0) / i被n整除 isPrime = false;/ 現(xiàn)在, isPrime 變量表示 n 是否素數(shù)偽代碼是人交流算法時使用的不完整的代碼,沒有固定的語法,但寫出關(guān)鍵的語句對所有的 i進(jìn)行檢測是多于的,因為只要有一個i被n整除,已經(jīng)可以判定不是素數(shù),不需要繼續(xù)試驗。在這里,可以使用break語句跳出循環(huán)輸入n;isPrime = true;for(i=2; in; i+) if( n% i=0) /
45、 i被n整除 isPrime = false;/ 現(xiàn)在, isPrime 變量表示 n 是否素數(shù)輸入n;isPrime = true;for(i=2; in; i+) if( n% i=0) / i被n整除 isPrime = false;/ 現(xiàn)在, isPrime 變量表示 n 是否素數(shù)輸入n;isPrime = true;for(i=2; in; i+) if( n% i=0) / i被n整除 isPrime = false;/ 現(xiàn)在, isPrime 變量表示 n 是否素數(shù)static void Main(string args) int n, k; bool IsPrime = tru
46、e; /標(biāo)志標(biāo)志 Console.WriteLine(請輸入要檢測的整數(shù)(大于請輸入要檢測的整數(shù)(大于1):); n = int.Parse(Console.ReadLine(); for (k = 2; k n; k+) if (n % k = 0) IsPrime = false; / 可以肯定不是素數(shù)可以肯定不是素數(shù) break; /余下的不必再試驗了余下的不必再試驗了 if (IsPrime) Console.WriteLine(0是素數(shù)是素數(shù), n); else Console.WriteLine(0不是素數(shù)不是素數(shù), n); 注:在該例子中,沒有注:在該例子中,沒有break程序也
47、能正確運行,但有多余計算程序也能正確運行,但有多余計算continuecontinue語句用于循環(huán)語句中,類似于語句用于循環(huán)語句中,類似于breakbreak語語句,句,但僅從當(dāng)前的循環(huán)迭代中退出,然后執(zhí)行但僅從當(dāng)前的循環(huán)迭代中退出,然后執(zhí)行下一次迭代循環(huán)。下一次迭代循環(huán)。 用于循環(huán)語句中(while, do-while, for, foreach) continue 結(jié)束本次循環(huán),繼續(xù)下一次循環(huán)continue; 用于循環(huán)語句中(用于循環(huán)語句中(while, do-while, for, while, do-while, for, foreachforeach) continue conti
48、nue 結(jié)束本次循環(huán),繼續(xù)下一次循環(huán)結(jié)束本次循環(huán),繼續(xù)下一次循環(huán)continue;static void Main(string args) for(int i=1;i=10;i=i+1) if(i5) continue; Console.WriteLine(i); 了解了解continuecontinue語句的使用,求輸出大于或等于語句的使用,求輸出大于或等于5 5的數(shù)的數(shù)運行結(jié)果運行結(jié)果:5678910static void Main(string args) for(int i=1;i=10;i=i+1) if(i5) continue; Console.WriteLine(i); 運行
49、結(jié)果運行結(jié)果:5678910for(int n=10; n=20; n+) if(n%3 = 0)continue; Console.WriteLine(n);例:打印出10到20之間不能被3整除的數(shù)字例:輸出100以內(nèi)所有能被5整除的數(shù)static void Main(string args) for (int i = 1; i = 100; i+) if (i % 5 != 0) continue; Console.Write(0t, i); static void Main(string args) for (int i = 1; i = 100; i+) if (i % 5 = 0) Console.Write(0t, i); 使用使用Continue:不用不用Continue:這兩個程序功能相同static void Main(string args) for (int i =
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙有源層薄膜晶體管的制備及其界面修飾的研究
- 2025高一上學(xué)期班主任課外拓展計劃
- 蘭州市城市智慧社區(qū)建設(shè)困境研究-以Y社區(qū)為例
- 基于SOLO分類評價的高中生歷史解釋素養(yǎng)的培養(yǎng)研究
- 建筑行業(yè)財務(wù)制度與合規(guī)流程
- 幼兒園安全文化建設(shè)實施計劃
- 2025年鄉(xiāng)村醫(yī)生考試:農(nóng)村醫(yī)療衛(wèi)生服務(wù)體系建設(shè)醫(yī)學(xué)倫理試題
- 小班授課語文教學(xué)計劃研究
- 2025年專升本藝術(shù)概論考試模擬卷:藝術(shù)創(chuàng)作分析藝術(shù)與政治試題
- 2025年初中學(xué)業(yè)水平考試地理模擬卷:地圖與地球科學(xué)基礎(chǔ)試題集
- 女性中醫(yī)保健智慧樹知到期末考試答案章節(jié)答案2024年暨南大學(xué)
- MOOC 一生的健康鍛煉-西南交通大學(xué) 中國大學(xué)慕課答案
- 人工智能原理及MATLAB實現(xiàn) 課件 第2章 機器學(xué)習(xí)
- 全套SPC控制圖制作-EXCEL版
- 宣傳費用結(jié)算合同
- 蘋果行業(yè)競爭對手分析分析
- 公安局指揮中心工作總結(jié)
- 林業(yè)創(chuàng)業(yè)計劃書
- 冠狀動脈粥樣硬化的護理查房
- 環(huán)衛(wèi)招標(biāo)培訓(xùn)課件
- 中國腫瘤營養(yǎng)治療指南
評論
0/150
提交評論