第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第4頁(yè)
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章VisualC#概述第2章C#語(yǔ)法基礎(chǔ)第3章順序結(jié)構(gòu)程序設(shè)計(jì)第4章選擇結(jié)構(gòu)程序設(shè)計(jì)第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)第6章面向?qū)ο缶幊碳夹g(shù)第7章繼承第8章數(shù)組與自定義類型第9章菜單、工具欄與狀態(tài)欄第10章鼠標(biāo)鍵盤事件第11章ActiveX控件第12章數(shù)據(jù)庫(kù)技術(shù)第13章開(kāi)發(fā)Web應(yīng)用程序第14章異常處理與部署應(yīng)用程序下一頁(yè)VisualC#2005程序設(shè)計(jì)上一頁(yè)第5章

循環(huán)程序結(jié)構(gòu)設(shè)計(jì)

5.1循環(huán)語(yǔ)句

5.1.1for循環(huán)語(yǔ)句

for循環(huán)常常用于已知循環(huán)次數(shù)的情況,使用該循環(huán)時(shí),測(cè)試是否滿足某個(gè)條件,如果滿足條件,則進(jìn)入下一次循環(huán),否則,退出該循環(huán)。章節(jié)目錄上一頁(yè)下一頁(yè)1.for語(yǔ)句的語(yǔ)法格式

for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)語(yǔ)句序列;}其中表達(dá)式1用于設(shè)置循環(huán)變量的初始值,該表達(dá)式僅初次進(jìn)入循環(huán)時(shí)執(zhí)行一次;表達(dá)式2為條件判斷表達(dá)式,即每次執(zhí)行循環(huán)語(yǔ)句序列前,判斷該表達(dá)式是否成立,如果成立,則執(zhí)行循環(huán)語(yǔ)句序列(進(jìn)入循環(huán)體),否則,循環(huán)結(jié)束,執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句;表達(dá)式3用于改變循環(huán)變量值,一般通過(guò)遞增或遞減來(lái)實(shí)現(xiàn)。

章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)圖6-1for循環(huán)流程圖2.for循環(huán)語(yǔ)句的使用根據(jù)下面的實(shí)例,了解for語(yǔ)句的工作流程及實(shí)現(xiàn)方法?!纠?-1】計(jì)算1~100的奇數(shù)和。使用for語(yǔ)句實(shí)現(xiàn)。

章節(jié)目錄上一頁(yè)下一頁(yè)【計(jì)算】按鈕的Click事件代碼為:privatevoidbutton1_Click(objectsender,EventArgse){intsum=0;//聲明并初始化求和變量for(inti=1;i<=100;i=i+2)//循環(huán)變量每次循環(huán)遞增2sum+=i;//循環(huán)語(yǔ)句序列僅有一句,故省略大括號(hào)lblSum.Text="1到100的奇數(shù)和為:"+sum;//循環(huán)語(yǔ)句的后續(xù)語(yǔ)句,輸出求和結(jié)果}章節(jié)目錄上一頁(yè)下一頁(yè)5.1.2while循環(huán)語(yǔ)句while語(yǔ)句可以用于不知道循環(huán)次數(shù)的情況。循環(huán)時(shí)在循環(huán)的頂部判斷某個(gè)條件是否滿足,當(dāng)循環(huán)的條件判斷為真時(shí)(滿足條件),進(jìn)入循環(huán),否則退出循環(huán)。1.while循環(huán)語(yǔ)句的語(yǔ)法格式while循環(huán)語(yǔ)句的格式為:while(條件表達(dá)式){循環(huán)語(yǔ)句序列}章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)圖6-4while程序流程圖說(shuō)明如下:①

條件表達(dá)式為關(guān)系表達(dá)式或邏輯表達(dá)式,其運(yùn)算結(jié)果為true(真)或false(假)。在條件表達(dá)式中必須包含控制循環(huán)的變量,即循環(huán)變量。②

作為循環(huán)體的語(yǔ)句序列可以是多條語(yǔ)句,也可以是一條語(yǔ)句。如果是一條語(yǔ)句,大括號(hào)可以省略。如果省略了大括號(hào),則循環(huán)語(yǔ)句往后碰到的第一個(gè)分號(hào)即為循環(huán)的結(jié)尾。③

循環(huán)語(yǔ)句序列中至少應(yīng)包含改變循環(huán)變量的語(yǔ)句,以避免陷入死循環(huán)。章節(jié)目錄上一頁(yè)下一頁(yè)2.while循環(huán)語(yǔ)句的使用【例5-2】輸入兩個(gè)正整數(shù),求兩個(gè)數(shù)的最大公約數(shù)與最小公倍數(shù)。章節(jié)目錄上一頁(yè)下一頁(yè)【計(jì)算】按鈕的Click事件代碼為:privatevoidbutton1_Click(objectsender,EventArgse){lblResult.Text="";//清空用于輸出結(jié)果的標(biāo)簽框inta=int.Parse(txtA.Text);intb=int.Parse(txtB.Text);if(a>b){intc=a;a=b;b=c;}//保證a<binti=a,j=b;//聲明并初始化求最大公約數(shù)的循環(huán)變量i,求最小公倍數(shù)的循環(huán)變量j

章節(jié)目錄上一頁(yè)下一頁(yè)if(checkBox1.Checked){while(a%i!=0||b%i!=0)i--;lblResult.Text="兩個(gè)數(shù)的最大公約數(shù)為:"+i+"\n";//輸出最大公約數(shù)}if(checkBox2.Checked){while(j%a!=0||j%b!=0)j++;lblResult.Text+="兩個(gè)數(shù)的最小公倍數(shù)為:"+j;//輸出最小公倍數(shù)}}章節(jié)目錄上一頁(yè)下一頁(yè)5.1.3do…while循環(huán)do…while循環(huán)非常類似于while循環(huán)。一般情況下,可以相互轉(zhuǎn)換使用。它們之間的差別在于while循環(huán)的測(cè)試條件在每一次循環(huán)開(kāi)始時(shí)執(zhí)行,而do…while循環(huán)的測(cè)試條件在每一次循環(huán)體結(jié)束時(shí)進(jìn)行判斷。同樣的,do…while可以解決一些循環(huán)問(wèn)題,但使用的頻率較少。1.do…while的語(yǔ)法格式do…while語(yǔ)法的一般格式為:do{語(yǔ)句序列}while(條件表達(dá)式);章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)do…while循環(huán)與for循環(huán)及while循環(huán)的最大不同在于,for循環(huán)與while循環(huán)是先測(cè)試,后循環(huán),而do…while循環(huán)則先循環(huán)后測(cè)試。for循環(huán)與while循環(huán)叫前測(cè)試循環(huán),do…while循環(huán)叫后測(cè)試循環(huán)。do…while循環(huán)至少可以使循環(huán)進(jìn)行一次,而for循環(huán)與while循環(huán)則有可能一次循環(huán)也不進(jìn)行。

章節(jié)目錄上一頁(yè)下一頁(yè)2.do…while的使用【例5-3】輸入一個(gè)企業(yè)每年產(chǎn)值的平均增長(zhǎng)速度,求多少年后產(chǎn)值能夠翻一番。章節(jié)目錄上一頁(yè)下一頁(yè)【計(jì)算】按鈕的Click事件代碼為:privatevoidbutton1_Click(objectsender,EventArgse){doubleproductionValue=100,rise;rise=double.Parse(txtRise.Text)/100;intyears=0;do{productionValue=productionValue*(1+rise);years+=1;}while(productionValue<200);lblResult.Text=years+"年后產(chǎn)值為:"+(Math.Round(productionValue))+"%";}章節(jié)目錄上一頁(yè)下一頁(yè)5.2循環(huán)的嵌套與轉(zhuǎn)向語(yǔ)句在程序設(shè)計(jì)過(guò)程中,常常需要使用循環(huán)的嵌套來(lái)處理重復(fù)操作。而在處理重復(fù)操作時(shí),往往又需要根據(jù)某一條件改變循環(huán)正常流程。5.2.1循環(huán)的嵌套當(dāng)一個(gè)循環(huán)(稱為“外循環(huán)”)的循環(huán)語(yǔ)句序列內(nèi)包含另一個(gè)或若干個(gè)循環(huán)(稱為“內(nèi)循環(huán)”),稱為循環(huán)的嵌套,這種語(yǔ)句結(jié)構(gòu)稱為多重循環(huán)結(jié)構(gòu)。章節(jié)目錄上一頁(yè)下一頁(yè)【例5-4】使程序輸出如圖5-13所示的圖形。

章節(jié)目錄上一頁(yè)下一頁(yè)【三角形】單選按鈕的CheckedChanged事件代碼為:privatevoidradTriangle_CheckedChanged(objectsender,EventArgse){if(radTriangle.Checked){lblOut.Text="三角形:\n";for(inti=1;i<=17;i+=2){for(intj=1;j<18-i;j++)lblOut.Text+="";for(intk=1;k<=i;k++)lblOut.Text+="*";lblOut.Text+="\n";}}}章節(jié)目錄上一頁(yè)下一頁(yè)【梯形】單選按鈕的CheckedChanged事件代碼為:privatevoidradTrapezia_CheckedChanged(objectsender,EventArgse){if(radTrapezia.Checked){lblOut.Text="梯形:\n\n";for(inti=4;i<=17;i+=2)//循環(huán)變量i的初始值與三角形代碼不同{for(intj=1;j<18-i;j++)lblOut.Text+="";for(intk=1;k<=i;k++)lblOut.Text+="*";lblOut.Text+="\n";}}}章節(jié)目錄上一頁(yè)下一頁(yè)5.2.2轉(zhuǎn)向語(yǔ)句

1.break語(yǔ)句break在多分支選擇(switch)語(yǔ)句中的作用是跳出switch語(yǔ)句,break語(yǔ)句也可以用于退出循環(huán),使用break語(yǔ)句時(shí),將結(jié)束循環(huán),執(zhí)行循環(huán)的后續(xù)語(yǔ)句。

2.continue語(yǔ)句continue語(yǔ)句用于循環(huán)語(yǔ)句中,continue語(yǔ)句作用是結(jié)束本次循環(huán),跳過(guò)該語(yǔ)句之后的循環(huán)語(yǔ)句,返回到循環(huán)的起始處,并根據(jù)循環(huán)條件決定是否執(zhí)行下一次循環(huán)。

章節(jié)目錄上一頁(yè)下一頁(yè)【例5-5】利用break與continue控制輸出1~30的數(shù)值。章節(jié)目錄上一頁(yè)下一頁(yè)【輸出】按鈕的Click事件代碼為:privatevoidbutton1_Click(objectsender,EventArgse){lblOut.Text="";for(inti=1;i<=30;i++){if(radAll.Checked)//【全部】單選按鈕被選中,則輸出全部數(shù)據(jù)lblOut.Text+=i+"";if(radBreak.Checked)//【小于等于15】單選按鈕被選中,則輸出1~15{if(i>15)break;lblOut.Text+=i+"";}

章節(jié)目錄上一頁(yè)下一頁(yè)if(radContinue.Checked)//【奇數(shù)】單選按鈕被選中,則輸出全部奇數(shù){if(i%2==0)continue;lblOut.Text+=i+"";}}}章節(jié)目錄上一頁(yè)下一頁(yè)5.3列表框和組合框5.3.1列表框(ListBox)ListBox控件為用戶提供了選項(xiàng)的列表,用戶可以從列表中進(jìn)行選擇輸入。如果項(xiàng)目數(shù)目超過(guò)列表框可顯示的數(shù)目,控件上將自動(dòng)出現(xiàn)滾動(dòng)條,它是一種規(guī)范輸入的好工具。1.列表框的常用屬性、方法和事件2.列表框應(yīng)用實(shí)例章節(jié)目錄上一頁(yè)下一頁(yè)【例5-6】設(shè)計(jì)一個(gè)Windows應(yīng)用程序,程序運(yùn)行時(shí),自動(dòng)往列表框中添加2000~2006的年份數(shù)據(jù),選擇列表框中的某一年份,自動(dòng)判斷是否閏年,在文本框中輸入年份;單擊【追加】按鈕,可以將文本框中的年份追加到列表框的列表項(xiàng)末尾,單擊【插入】按鈕,可以將文本框中的年份插入到列表框被選定項(xiàng)之前;單擊【移除】按鈕,可以刪除被選定的列表項(xiàng),單擊【清空】按鈕,可以刪除列表框中的所有列表項(xiàng)。

章節(jié)目錄上一頁(yè)下一頁(yè)圖6-12計(jì)算sum的值圖5-19追加年份

圖5-20插入年份

章節(jié)目錄上一頁(yè)下一頁(yè)窗體的Load事件代碼為:privatevoidForm1_Load(objectsender,EventArgse){for(inti=2000;i<=2006;i++)lstYears.Items.Add(i);}章節(jié)目錄上一頁(yè)下一頁(yè)列表框的SelectedIndexChanged事件代碼為:privatevoidlstYears_SelectedIndexChanged(objectsender,EventArgse){if(lstYears.SelectedIndex==-1)return;intyear=int.Parse(lstYears.SelectedItem.ToString());

章節(jié)目錄上一頁(yè)下一頁(yè)if(year%4==0&&year%100!=0||year%400==0)lblOut.Text=year+"年是閏年!";elselblOut.Text=year+"年不是閏年!";}章節(jié)目錄上一頁(yè)下一頁(yè)【插入】按鈕的Click事件代碼為:privatevoidbutton2_Click(objectsender,EventArgse){if(lstYears.SelectedIndex!=-1)lstYears.Items.Insert(lstYears.SelectedIndex,txtInputYear.Text);}章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)5.3.2組合框(ComboBox)1.ComboBox常用屬性和事件組合框控件的屬性與列表框的屬性大部分相同。2.ComboBox應(yīng)用實(shí)例【例5-7】設(shè)計(jì)一個(gè)Windows應(yīng)用程序,在組合框中輸入書名,單擊【添加】按鈕,將輸入的書名添加到組合框的列表中,單擊【取消】按鈕,輸入的書名不予添加,并清除輸入的書名。在設(shè)計(jì)程序時(shí),在組合框中預(yù)置部分書名。章節(jié)目錄上一頁(yè)下一頁(yè)章節(jié)目錄上一頁(yè)下一頁(yè)【添加】按鈕的Click事件代碼為:privatevoidbutton1_Click(objectsender,EventArgse){cmbBooks.Items.Add(cmbBooks.Text);}【取消】按鈕的Click事件代碼為:privatevoidbutton2_Click(objectsender,EventArgse){cmbBooks.Text="";}章節(jié)目錄上一頁(yè)下一頁(yè)5.4使用計(jì)時(shí)器控件(Timer)5.5.1計(jì)時(shí)器控件的屬性、方法和事件Enabled:該屬性為True時(shí),計(jì)時(shí)器開(kāi)始工作,為False時(shí)暫停。Interval:該屬性用來(lái)設(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論