程序控制結(jié)構(gòu)第四章_第1頁
程序控制結(jié)構(gòu)第四章_第2頁
程序控制結(jié)構(gòu)第四章_第3頁
程序控制結(jié)構(gòu)第四章_第4頁
程序控制結(jié)構(gòu)第四章_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章程序控制結(jié)構(gòu)第4章程序控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設計選擇結(jié)構(gòu)程序設計順序結(jié)構(gòu)程序設計程序設計與算法VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1.1程序的基本組成程序的基本組成包括:輸入、處理和輸出三個部分。例如,需要用計算機編程求解一個三角形的面積。根據(jù)題目的要求可以確定:(1)程序的“輸出”是三角形的面積值。(2)“處理”是求解三角形的面積。(3)如果用三條邊長求三角形面積,則需要輸入三角形的三條邊長,如果用相鄰的兩條邊及其夾角求三角形面積,就需要輸入兩條邊長及其對應的夾角。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1程序設計與算法由于計算機只能執(zhí)行算術(shù)運算和邏輯運算,所以其解決問題的方法、步驟和人們生活中解決問題的方法、步驟不同,必須考慮其特殊性。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1.2算法1.算法的定義從廣義上講,算法是解決某個問題或處理某個事件的方法和步驟。從狹義上講,算法指用計算機解決某一問題的方法和步驟。算法可以分為兩大類:一類是數(shù)值計算方法,主要是解決一般數(shù)學解析方法難以處理的一些數(shù)學問題,如求解超越方程的根等;另一類是非數(shù)值計算方法,如排序、查找和求最大值最小值等。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1.2算法2.算法的特征算法具備以下五個特征:(1)確定性(2)可行性(3)有窮性(4)輸入性(5)輸出性VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1.2算法3.算法的描述算法本身可以采用不同的方法來描述。可以用自然語言(英語、漢語等)來描述;可以用偽代碼來描述;可以用特定的圖形來描述。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1.2算法4.算法和程序的區(qū)別算法和程序的區(qū)別主要有三點:(1)一個程序不一定滿足有窮性。(2)程序中的指令必須是機器可執(zhí)行的,而算法中的指令則無此限制。

(3)算法代表了對問題的解,而程序則是算法在計算機上的特定的實現(xiàn)。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.1.3算法的基本結(jié)構(gòu)算法有三種基本結(jié)構(gòu):順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.2順序結(jié)構(gòu)順序結(jié)構(gòu)的概念和執(zhí)行流程順序結(jié)構(gòu)是指按照語句書寫的先后順序依次執(zhí)行每條語句。順序結(jié)構(gòu)主要是由變量定義語句、賦值語句、輸入輸出語句和一些命令語句等構(gòu)成。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.2順序結(jié)構(gòu)如以下順序結(jié)構(gòu)程序段:PrivateSubCommand1_Click()DimxAsInteger,yAsInteger,zAsInteger'變量定義x=Val(Text1.Text)'數(shù)據(jù)的輸入y=Val(Text2.Text)'數(shù)據(jù)的輸入z=x+y'數(shù)據(jù)的處理Text3.Text=z'數(shù)據(jù)的輸出EndSubVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.2順序結(jié)構(gòu)該程序段自上而下依次執(zhí)行各條語句。整個程序只有一個入口和一個出口。程序中主要包含四部分內(nèi)容:(1)變量的定義;(2)數(shù)據(jù)的輸入;(3)數(shù)據(jù)的處理;(4)數(shù)據(jù)的輸出。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計1.輸入函數(shù)—InputBoxInputBox函數(shù)用來接收通過鍵盤輸入的數(shù)據(jù)。InputBox函數(shù)的語法格式如下:v=InputBox(Propmt[,Title][,Default][,x,y][,Helpfile,Context])v:用于接收在InputBox函數(shù)中輸入的數(shù)據(jù)。Propmt:對話框中顯示的提示信息。Title:對話框的標題。Default:顯示在用戶編輯框中的缺省值。x,y:用于確定對話框在屏幕上顯示時的位置。Helpfile,Context:是幫助文件名和幫助主題號。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計1.輸入函數(shù)—InputBox例如x=InputBox(“請輸入一個數(shù)字!”,“程序示例”,10),顯示如圖所示的對話框。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計2.消息框函數(shù)—MsgBoxMsgBox函數(shù)用于向用戶發(fā)布提示信息,并要求用戶做出響應。MsgBox函數(shù)語法格式如下:v=MsgBox(Propmt[,Button][,Title][,Helpfile,Context])Propmt:對話框中顯示的提示信息。Button:定義信息框按鈕的個數(shù)、類型和信息框中的圖標。Title:信息框的標題。Helpfile,Context:Helpfile是幫助文件名,Context是幫助主題號。V:用于接收MsgBox函數(shù)返回的一個值。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計2.消息框函數(shù)—MsgBox例如:x=MsgBox("非法數(shù)據(jù)!",1+48+0,"提示信息!")VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3選擇結(jié)構(gòu)程序設計本節(jié)要點選擇結(jié)構(gòu)先對條件進行測試,根據(jù)測試的結(jié)果選擇執(zhí)行對應的分支語句。1.If條件語句2.IIf函數(shù)3.SelectCase結(jié)構(gòu)4.選擇結(jié)構(gòu)應用示例VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句1.單分支If語句說明:條件可以是:關(guān)系表達式、邏輯表達式或算數(shù)表達式。格式(1)中“語句組”可以是一條或幾條語句。格式(3)不換行書寫,僅一行,沒有EndIf。If和EndIf必須成對使用,除非是格式(2)。格式(2):If條件Then語句……格式(1):If條件Then語句組EndIf……VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句1.單分支If語句執(zhí)行規(guī)則:條件為真則執(zhí)行“語句”或“語句組”,否則,不執(zhí)行“語句”或“語句組”,直接執(zhí)行If后面的語句。例4.1根據(jù)百分制成績提示考試是否通過。條件語組TFIfscore>=60ThenPrint"祝賀你考試通過!"EndIfPrint"繼續(xù)努力!"score=60Ifscore>=60ThenPrint"祝賀你考試通過!"Print"繼續(xù)努力!"VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句格式:If條件Then語句組1Else語句組2EndIf條件語句組1TF語句組2執(zhí)行規(guī)則:條件為真執(zhí)行語句組1,If語句執(zhí)行結(jié)束,否則,執(zhí)行語句組2,If語句執(zhí)行結(jié)束。2.雙分支If語句VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句2.雙分支If語句例4.2求x和y的最大值

Ifx>yThenPrint"最大值是:"

,xElsePrint"最大值是:"

,yEndIf

單分支和雙分支If語句用于解決兩種情況的問題。

VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句2.雙分支If語句例4.3計算分段函數(shù):程序代碼:Ifx>=0Theny=(-x+Sqr(x^3-3*x+7))/2Elsey=Log(x)+1EndIfVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句2.雙分支If語句例4.4計算分段函數(shù)。

程序代碼:Ifx>=0ThenElsey=Log(x)+1EndIf

雙分支If的Then中又包含一個If語句。Ifx>0

Theny=(-x+Sqr(x^3-3*x+7))/2Elsey=0EndIfVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句2.雙分支If語句

在If語句的Then或Else中又包含If語句,稱為If結(jié)構(gòu)嵌套。注意:注意If嵌套結(jié)構(gòu)的程序書寫規(guī)范,最好采用層層縮進的方式。除非采用If結(jié)構(gòu)的縮寫格式,否則,有幾個If語句,就有幾個EndIf語句與之配對。嵌套的結(jié)構(gòu)比較復雜!VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句3.多分支If語句格式:If條件1Then語句組1ElseIf條件2Then語句組2……ElseIf條件nThen語句組nElse語句組n+1EndIf執(zhí)行規(guī)則:首先判斷條件1,條件1成立,執(zhí)行語句組1,If語句執(zhí)行結(jié)束,否則再判斷條件2……依此類推。n個條件都不成立,則執(zhí)行語句組n+1,n+1個語句組僅執(zhí)行一個。

注意:(1)在書寫時要注意ElseIf之間不能有空格;(2)條件的書寫是有順序的,如有多個分支同時滿足條件,只執(zhí)行第一個與之匹配的語句組。

VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句3.多分支If語句

多分支If語句用于解決三種及以上情況的問題。把例4.4用多分支If語句處理。程序代碼:Ifx>0Theny=(-x+Sqr(x^3-3*x+7))/2ElseIfx=0

Theny=0Elsey=Log(x)+1EndIfVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.1If條件語句3.多分支If語句例4.5編寫一個按月收入額計算個人收入調(diào)節(jié)稅的程序。計算方法如下:VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.2條件函數(shù)IIf函數(shù)格式:變量=IIf(表達式1,表達式2,表達式3)IIf函數(shù)根據(jù)條件的成立與否,返回不同表達式的結(jié)果。如果表達式1的值為真,函數(shù)值是表達式2的值,否則函數(shù)值是表達式3的值。例4.6將兩個變量x和y中的最大值放入max。If語句:Ifx>yThenmax=xElsemax=yEndIf

IIf函數(shù):max=IIf(x>y,x,y)VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.3SelectCase語句SelectCase測試表達式Case測試項1語句組1Case測試項2語句組2……Case測試項n語句組nCaseElse語句組n+1EndSelect說明:(1)測試表達式的值應是數(shù)字或字符型。(2)測試項的取值必須與測試表達式的值類型相同,常用形式為:具體取值,用逗號隔開如:1,5,9連續(xù)的范圍:界1TO界2如:12To20

滿足某個條件:Is運算符如:Is>10三種形式可組合使用,用逗號隔開。SelectCase語句執(zhí)行過程先計算測試表達式的結(jié)果,按順序判斷結(jié)果與Case語句后的測試項是否匹配,如果匹配,則執(zhí)行相應的語句組,否則繼續(xù)判斷,如果表達式結(jié)果與所有的測試項都不匹配,則執(zhí)行CaseElse后的語句組(如果有的話)。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.3SelectCase語句例4.7百分制成績轉(zhuǎn)換成三級制成績。成績大于等于90的為優(yōu)秀,小于90大于等于60為及格,否則為不及格。SelectCase方法:Mark=Val(Text1.Text)SelectCaseMarkCaseis>=90Print"優(yōu)"Case60to90Print"通過"CaseElsePrint"未通過"EndSelect多分支If方法:Mark=Val(Text1.Text)Ifmark>=90thenPrint"優(yōu)"ElseIfmark>=60thenPrint"通過"ElsePrint"未通過"EndIf

SelectCase語句和多分支If語句都是處理多分支問題。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3.4選擇結(jié)構(gòu)應用示例例4.8編寫一個加油站計費程序從“種類”中選擇油品種類,界面上的說明文字將隨之改變,并將“數(shù)量”文本框設為焦點;在數(shù)量文本框中輸入需購的油品數(shù)量后,單擊“計算”按鈕,在“總價”文本框顯示所購油品種類應付的金額。已知汽油單價:90號7.21元/升93號7.41元/升97號7.80元/升VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.3分支結(jié)構(gòu)總結(jié)單分支If語句雙分支If語句If語句的嵌套多分支If語句IIF函數(shù)SelectCase語句VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)循環(huán):是在指定的條件下多次重復執(zhí)行一組語句。1.For...Next2.Do...Loop

3.循環(huán)嵌套VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.1For循環(huán)結(jié)構(gòu)說明:初值、終值和步長可以為正整數(shù),也可以為小數(shù)。步長可以為正值,也可以為負值。ExitFor用于退出For循環(huán)。循環(huán)的執(zhí)行次數(shù)=Int((終值-初值)/步長)+1

For循環(huán)變量=初值To終值[Step步長]…ExitFor…Next[循環(huán)變量]步長省略,默認為1循環(huán)體可以省略VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.1For循環(huán)結(jié)構(gòu)執(zhí)行過程(初值小于終值,步長為正值)(1)將初值賦給循環(huán)變量(僅執(zhí)行一次)(2)判斷循環(huán)變量值是否小于等于終值(3)若是則執(zhí)行循環(huán)體(4)循環(huán)變量增加一個步長(5)重復(2)~(4)步驟(6)否則,結(jié)束循環(huán)循環(huán)變量賦初值循環(huán)變量=循環(huán)變量+步長語句塊FExitFor語句塊T循環(huán)變量<=終值FTVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.1For循環(huán)結(jié)構(gòu)執(zhí)行過程(初值大于終值,步長為負值)(1)將初值賦給循環(huán)變量(僅執(zhí)行一次)(2)判斷循環(huán)變量值是否大于等于終值(3)若是則執(zhí)行循環(huán)體(4)循環(huán)變量增加一個步長(5)重復(2)~(4)步驟(6)否則,結(jié)束循環(huán)循環(huán)變量賦初值循環(huán)變量=循環(huán)變量+步長語句塊FExitFor語句塊T循環(huán)變量>=終值FTVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)例4.9讀程序?qū)懡Y(jié)果程序代碼:s=0Fori=1To10step1s=s+iNextiPrinti,s可以省略該算法是累加求和:累加求和的做法是定義一個變量(如s),作為累加器使用,一般初值為0,再定義一個變量(如i)用來保存加數(shù)。

第1次:i=1,1<=10,s=0+1=1,執(zhí)行Next,i為2第2次:i=2,2<=10,s=1+2=3,執(zhí)行Next,i為3

……第10次:i=10,10<=10,s=45+10=55執(zhí)行Next,i為11

第10次循環(huán)結(jié)束后:11>10為假,循環(huán)結(jié)束。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)思考:求奇數(shù)和1+3+5+…+99?兩種方法:1)求和前用if語句對i做判斷,如果i是奇數(shù)對i求和。2)設置步長為2,則i的取值全部為奇數(shù)。方法1:S=0Fori=1To99

IfiMod2=0Thens=s+iEndIfNext方法2:S=0Fori=1To100step2s=s+iNextVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)例4.10求1/2+2/3+…+20/21

該問題也是求和,是按規(guī)律求和,累加器第i次加ai=i/(i+1),ai稱為通項。程序代碼:s=0Fori=1To20NextiPrinti,s說明:通項求和一般是先計算通項,然后把通項加到累加器。計算通項t=i/(i+1)s=s+tVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)例4.11求積:1*2*3*…*10分析:把求和s=s+i改成s=s*i。注意:(1)把s的初值改為1;(2)s定義成Long類型,整型可能不夠用。

程序代碼:

DimiAsinteger,sAsLongs=1Fori=1To10s=s*iNextiPrinti,sVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)

例4.12輸入一個正整數(shù),求各個位上數(shù)字之和。如輸入4532,輸出各個位上的數(shù)字之和14(1)輸入正整數(shù)k(2)求它是幾位數(shù)(3)用For循環(huán):1,位數(shù)和步長(4)取k的末位數(shù)(Mod),求和(5)使k去掉末位數(shù)(\)(6)重復(4)和(5),直到結(jié)束(7)在Text2中顯示結(jié)果分析:要求各個位數(shù)的和,必須把各個位上的數(shù)分離出來。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)總結(jié)思考:我國現(xiàn)有人口13億,按人口年增長率0.8%計算,多少年后我國人口超過26億?能否用For循環(huán)解決該問題?⑴初值、終值、步長必須是數(shù)值型,步長為正,初值<終值;若為負,初值>終值;缺省默認為1;⑵在已知循環(huán)次數(shù)時使用For循環(huán),循環(huán)次數(shù)=Int((終值-初值)/步長)+1;⑶組成循環(huán)體的語句塊可以是一條或多條語句;⑷ExitFor表示當遇到該語句時,退出循環(huán)體,執(zhí)行Next后面的語句;⑸

在循環(huán)體內(nèi)對循環(huán)變量可多次引用,但在循環(huán)過程中一般不改變其值,否則影響結(jié)果;⑹退出循環(huán)后,循環(huán)變量保持退出時的值。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)(1)DoWhile<條件>…[ExitDo]…Loop(2)

D0

…[ExitDo]…LoopWhile<條件>(3)DoUntil<條件>

…[ExitDo]…Loop(4)Do

…[ExitDo]…LoopUntil<條件>VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)格式⑴DoWhile<循環(huán)條件>循環(huán)體[ExitDo]

循環(huán)體Loop先判斷,后執(zhí)行:先判斷循環(huán)條件,若為真,執(zhí)行循環(huán)體,然后再判斷循環(huán)條件。否則,跳出循環(huán)體,執(zhí)行Loop之后的語句。循環(huán)條件語句塊TF語句塊FExitDoT注意:1.執(zhí)行ExitDo,直接跳出循環(huán)體,執(zhí)行Do…Loop后面的語句。2.如果循環(huán)條件初始為假,則循環(huán)體一次都不執(zhí)行。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)對例4.91+2+3+4+…+10Do…Loop方法:s=0:i=1DoWhilei<=10s=s+ii=i+1LoopFor循環(huán)實現(xiàn)的程序功能,也可以用Do…loop循環(huán)實現(xiàn)。For方法:s=0Fori=1To10s=s+iNextIVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)格式(2)Do循環(huán)體[ExitDo]

循環(huán)體LoopWhile<循環(huán)條件>執(zhí)行規(guī)則:先執(zhí)行循環(huán)體,再判斷循環(huán)條件。注意:不管“循環(huán)條件”開始為真還是為假,循環(huán)體至少執(zhí)行一次。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)

對例4.91+2+3+4+…+10程序代碼:s=0:i=1DoWhilei<=10s=s+ii=i+1Loop程序代碼:s=0:i=1Dos=s+ii=i+1LoopWhilei<=10可以看出:兩種While循環(huán)可以實現(xiàn)相同的功能。

將i先賦值為11,執(zhí)行結(jié)果如何?

VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)例4.13我國現(xiàn)有人口13億,按人口年增長率0.8%計算,多少年后我國人口超過26億?分析:可以看出,該問題是循環(huán)問題,但循環(huán)次數(shù)不確定,不能用For循環(huán)。計算公式:26=13*(1+0.008)n;程序代碼:P=13:n=0Don=n+1p=p*(1+0.008)LoopWhilep<=26Printn可以看出:(1)循環(huán)次數(shù)不確定的循環(huán)只能用While循環(huán);(2)For循環(huán)都可以轉(zhuǎn)換成While循環(huán),但Wile循環(huán)不一定都能用For循環(huán)實現(xiàn)。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)⑴DoWhile<條件>循環(huán)體Loop⑵D0循環(huán)體LoopWhile<條件>區(qū)別:(1)執(zhí)行順序不同:

形式一:先判斷,后執(zhí)行循環(huán)體;形式二:先執(zhí)行循環(huán)體,后判斷。(2)執(zhí)行次數(shù)不同(特殊情況下):形式一:條件不滿足,循環(huán)體可能一次也不執(zhí)行形式二:不論條件如何,至少執(zhí)行一次VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)例4.14用輾轉(zhuǎn)相除法求兩自然數(shù)m、n的最大公約數(shù)和最小公倍數(shù)。最大公約數(shù):⑴已知兩數(shù)m、n;⑵mModn的值為r;⑶m←n,n←r;⑷若r<>0,則重復⑵⑶,否則,循環(huán)結(jié)束,m為所求的最大公約數(shù)。最小公倍數(shù):原兩個數(shù)相乘,再除以最大公約數(shù)。程序代碼:DimmAsInteger,nAsIntegerm=Text1.Text:n=Text2.Textm1=m:n1=nDo

Loopwhiler<>0Text3.Text=mText4.Text=m1*n1/mr=mModnm=nn=r能否把whiler<>0放到Do后面?VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)格式⑶:DoUntil<條件>

循環(huán)體LoopWhile條件與Until條件的區(qū)別:While條件是當條件滿足時執(zhí)行循環(huán)體,Until條件是當條件滿足時結(jié)束循環(huán)體的執(zhí)行。

格式(4):Do

循環(huán)體LoopUntil<條件>VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)

對例4-9求1+2+3+4+…+10i=1DoWhilei<=10s=s+ii=i+1LoopPrinti,s

i=1DoUntili>10s=s+ii=i+1LoopPrinti,sWhile循環(huán)和Until循環(huán)可以實現(xiàn)相同的功能。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.2Do…Loop循環(huán)結(jié)構(gòu)幾種形式比較:

DoWhile<條件>循環(huán)體Loop(While<條件>)

DoUntil<條件>循環(huán)體Loop(Until<條件>)區(qū)別:While條件為真時執(zhí)行循環(huán)體,否則退出循環(huán)。

Until條件為假時執(zhí)行循環(huán)體,否則退出循環(huán)。關(guān)系:while和Until可以相互轉(zhuǎn)換,但循環(huán)條件取反。VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)例4.15輸入一個正整數(shù)n,求最大的k,使得1*1+2*2+…k*k<n成立。分析:由于循環(huán)次數(shù)不確定,不能用For循環(huán),只能用Do…Loop循環(huán)。(1)輸入n的值。(2)判斷累加和s<n?。(3)若是,s加下一個數(shù)的平方值。(4)重復(2)、(3)。(5)若否,結(jié)束循環(huán)。(6)由text2輸出最后一個累加數(shù)k。程序代碼:n=Val(Text1.Text)s=0:k=1DoWhiles<nk=k+1s=s+k*kLoopText2.Text=k-1VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)4.4.3循環(huán)的嵌套循環(huán)的嵌套:在一個循環(huán)體內(nèi)又包含了一個完整的循環(huán)結(jié)構(gòu)。例4.16打印乘法表。注意:(1)內(nèi)、外循環(huán)變量不能同名。(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能出現(xiàn)交叉。

程序代碼:Fori=1To9Forj=1ToIs=i&"×"&j&"="&i*jPrintTab((j-1)*8+1);s;NextjPrintNextiVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)例4.17計算1!+2!+…+5!程序代碼:s=0Fori=1To5

s=s+tNextPrintst=1Forj=1Toit=t*jNextVisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.4循環(huán)結(jié)構(gòu)總結(jié)1.For…Next語句2.Do…Loop語句3.循環(huán)的嵌套VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計VisualBasic程序設計4.5程序示例例4.18從一個由字母、數(shù)字組成的字符串中找出所有大寫字母并逆序輸出。方法2:PrivateSubCommand1_Click()Fori=Len(Text1.Text)To1Step-1t=Mid(Text1.Text,i,1)Ift>="A"Andt<="Z"Then

Text2.Text=Text2.Text+tEndIfNextEndSub方法1:PrivateSubCommand1_Click()Fori=1ToLen(Text1.Text)

溫馨提示

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

評論

0/150

提交評論