《第8部分回圈与讯息视窗利息计算程式和猜数字游戏.ppt》由会员分享,可在线阅读,更多相关《第8部分回圈与讯息视窗利息计算程式和猜数字游戏.ppt(33页珍藏版)》请在三一办公上搜索。
1、第8章 迴圈與訊息視窗利息計算程式和猜數字遊戲,8-1 For/Next計數迴圈8-2 訊息視窗與對話方塊8-3 Do/Loop條件迴圈8-4 巢狀迴圈8-5 跳出與繼續迴圈,8-1 For/Next計數迴圈-語法,Visual Basic語言的For/Next迴圈是一種計數迴圈,在迴圈本身的語法就可以自行維護計數器變數,我們只需指定範圍和增量,就可以重複執行固定次數的程式碼,直到到達結束條件。其語法如下所示:For 變數=起始值 To 終止值 Step 增量值 程式區塊Next 變數ViLLE 3.1 For/Next迴圈敘述,8-1 For/Next計數迴圈-範例,例如:使用For/Nex
2、t迴圈來計算1萬元5年複利18%的本利和,如下所示:Dim intI,intYear As IntegerDim dblTotal As Double=10000Dim dblRate As Double=0.18intYear=5For intI=1 To intYear dblTotal+=dblTotal*dblRateNext intI,8-1 For/Next計數迴圈-Visual Basic專案,Visual Basic專案:Ch8-1利息計算程式在Windows應用程式使用TextBox控制項輸入本金、利率和年限後,即可使用For/Next迴圈計算到此年限複利的本利和,然後在下方
3、Label控制項顯示本利和。其執行結果如下圖所示:,ViLLE 3.1 For/Next迴圈敘述,請啟動ViLLE,在【三.迴圈結構】目錄下,選【1.For/Next迴圈敘述】,按【Run】鈕模擬執行此範例程式,如下圖所示:,8-2 訊息與輸入視窗-MsgBox訊息視窗(語法),Visual Basic語言的MsgBox()函數可以顯示訊息視窗,提供使用者錯誤訊息或是非題的選擇。例如:確認操作,函數的語法如下所示:MsgBox(提示訊息,樣式,視窗標題)上述函數參數的最後2個並非必須參數,可以不用指定。各參數的說明,如下所示:提示訊息:顯示在訊息視窗的訊息字串,MsgBox()函數至少需要提供
4、此參數。樣式:指定訊息視窗顯示哪些按鈕、圖示和預設按鈕的樣式,這是MsgBoxStyle列舉常數。視窗標題:顯示在訊息視窗上方標題列的字串,如果沒有指定,預設就是專案名稱。,8-2 訊息與輸入視窗-MsgBox訊息視窗(範例),例如:使用MsgBox()函數來顯示計算結果的本利和,如下所示:ret=MsgBox(dblTotal.ToString(C),_ msgStyle,本利和)第1個參數是文字方塊的內容,第2個參數msgStyle是顯示樣式的整數值,使用的是列舉常數,如果不只一個,請使用加法來計算樣式值,如下所示:msgStyle=MsgBoxStyle.OKCancel+_ MsgBo
5、xStyle.Information上述樣式值是顯示確定和取消鈕和!圖示,最後1個參數是訊息視窗的標題文字。,8-2 訊息與輸入視窗-MsgBox訊息視窗(傳回值),MsgBox()函數如果有傳回值,傳回值就是使用者按下的哪一個按鈕,即MsgBoxResult列舉常數,其說明如下表所示:,8-2 訊息與輸入視窗-InputBox輸入視窗(語法),InputBox輸入視窗可以彈出一個視窗來讓使用者輸入資料,在功能上如同文字方塊控制項。InputBox()函數的語法如下所示:InputBox(提示訊息,標題文字,預設值,位置x,位置y)上述函數的最後4個參數並非必須參數,可以不用指定。各參數的說明
6、,如下所示:提示訊息:顯示在輸入視窗的字串,InputBox()函數至少需要提供此參數。標題文字:顯示在標題列的文字內容。預設值:輸入資料的預設值。位置x、位置y:輸入視窗在螢幕上顯示的位置,沒有指定,預設值是桌面正中央。,8-2 訊息與輸入視窗-InputBox輸入視窗(範例),例如:使用InputBox()函數來輸入本金的金額,如下所示:strValue=InputBox(請輸入金額?,輸入金額)上述程式碼的InputBox()函數只有前2個參數,傳回值是使用者輸入的資料,按下確定鈕傳回輸入字串;取消鈕傳回空字串。,8-2 訊息與輸入視窗-Visual Basic專案,Visual Bas
7、ic專案:Ch8-2利息計算程式這個Windows應用程式是修改第8-1節的【利息計算程式】,改為使用InputBox()函數來輸入本金,MegBox()函數顯示本利和。其執行結果如下圖所示:,8-3 Do/Loop條件迴圈-說明1,在Visual Basic語言的條件迴圈結構就是Do/Loop迴圈,以條件測試的位置分成兩種,如下所示:前測式重複結構:在迴圈開始使用While或Until測試迴圈條件。其語法如下所示:Do While|Until 條件 程式區塊LoopViLLE 3.2 While/Loop迴圈敘述,8-3 Do/Loop條件迴圈-說明2,後測式重複結構:在迴圈結尾使用Whil
8、e或Until測試迴圈條件,因為是在結尾測試條件,所以迴圈至少會執行一次。其語法如下所示:Do 程式區塊Loop While|Until 條件ViLLE 3.4 Do/Loop While迴圈敘述,8-3 Do/Loop條件迴圈-Do While/Loop迴圈,Do/Loop迴圈可以使用While條件在迴圈開頭檢查,開頭檢查的目的是檢查是否允許進入迴圈,當While的測試條件成立才允許進入迴圈。例如:計算1萬元5年複利18%的本利和,如下所示:intI=1 dblTotal=10000dblRate=0.18Do While intI=5 dblTotal+=dblTotal*dblRate
9、intI=intI+1Loop,ViLLE 3.2 Do While/Loop迴圈敘述,請啟動ViLLE,在【三.迴圈結構】目錄下,選【2.Do While/Loop迴圈敘述】,按【Run】鈕模擬執行此範例程式,如下圖所示:,8-3 Do/Loop條件迴圈-Do Until/Loop迴圈,Do/Loop迴圈如果使用Until條件在迴圈開始檢查,迴圈是執行到條件成立為止,如果條件不成立就進入迴圈。例如:計算1萬元5年複利18%的本利和,如下所示:intI=1 dblTotal=10000dblRate=0.18Do Until intI 5 dblTotal+=dblTotal*dblRate
10、intI=intI+1Loop,8-3 Do/Loop條件迴圈-Do/Loop While迴圈,Do/Loop迴圈可以使用While條件在迴圈結尾檢查,此時Do/Loop迴圈至少會執行一次。例如:計算1萬元5年複利18%的本利和,如下所示:intI=1 dblTotal=10000dblRate=0.18Do dblTotal+=dblTotal*dblRate intI=intI+1Loop While intI=5,ViLLE 3.4 Do/Loop While迴圈敘述,請啟動ViLLE,在【三.迴圈結構】目錄下,選【4.Do/Loop While迴圈敘述】,按【Run】鈕模擬執行此範例程
11、式,如下圖所示:,8-3 Do/Loop條件迴圈-Do/Loop Until迴圈,Do/Loop迴圈如果使用Until條件在迴圈結尾檢查,迴圈也一樣至少執行一次。例如:計算1萬元5年複利18%的本利和,如下所示:intI=1 dblTotal=10000dblRate=0.18Do dblTotal+=dblTotal*dblRate intI=intI+1Loop Until intI 5,8-3 Do/Loop條件迴圈-Visual Basic專案,Visual Basic專案:Ch8-3利息計算程式這個Windows應用程式是修改第8-1節的【利息計算程式】,改為使用Do/Loop迴圈來
12、計算本利和。其執行結果如下圖所示:,8-4 巢狀迴圈-說明,巢狀迴圈是在迴圈之中擁有其他迴圈結構,例如:在For/Next迴圈內擁有For/Next和Do/Loop迴圈。同樣的,Do/Loop迴圈內也可以擁有For/Next和Do/Loop迴圈。,8-4 巢狀迴圈-範例,Visual Basic語言的巢狀迴圈可以混合For/Next和Do/Loop迴圈結構,例如:在For/Next迴圈內擁有Do/Loop Until迴圈,如下所示:第一層For intI=1 To 9 第二層 intJ=1 Do intJ+=1 Loop Until intJ 9Next intI,8-4 巢狀迴圈-範例說明,
13、巢狀迴圈共有兩層,在第1層的For/Next迴圈執行9次,第二層Do/Loop Until迴圈如果也執行9次,兩層迴圈總共可執行81次,如下表所示:,8-4 巢狀迴圈-再談利息的計算,本節前建立的【利息計算程式】屬於複利計算程式,其每一年的利息會滾入本金來計算下一年的利息,例如:信用卡或現金卡的循環利息,就是使用複利方式來計算利息,所以利滾利的速度非常的快。在之前的範例是使用迴圈來計算本利和,事實上,我們可以將它改寫成指數運算的複利公式,如下所示:Total=Amount*(1+Interest)Years,8-4 巢狀迴圈-Visual Basic專案,Visual Basic專案:Ch8-
14、4利息計算程式在Windows應用程式使用TextBox控制項輸入本金、利率範圍和年限範圍後,使用巢狀迴圈配合複利公式來計算不同年限和利率的本利和。其執行結果如下圖所示:,8-5 跳出與繼續迴圈,8-5-1 Exit跳出迴圈8-5-2 Continue繼續迴圈,8-5-1 Exit跳出迴圈-說明,不論是For/Next或Do/Loop迴圈,都可以使用Exit關鍵字來結束迴圈的執行,就算尚未到達結束迴圈的條件,也一樣可以強迫跳出迴圈,馬上結束迴圈的執行。以Do/Loop迴圈為例,因為迴圈需要自行確認迴圈能夠結束。換句話說,如果沒有使用While或Until在迴圈頭尾測試條件,單純Do/Loop迴
15、圈就是一個無窮迴圈,此時就可以使用Exit Do來結束迴圈。,8-5-1 Exit跳出迴圈-範例,Do While/Loop迴圈的If Then條件成立時,就可以執行Exit Do來中斷迴圈的執行,如下所示:Do While True.If str=Then txtOutput.Text&=使用者放棄.&_ vbNewLine Exit Do End If.Loop,8-5-1 Exit跳出迴圈-Visual Basic專案,Visual Basic專案:Ch8-5-1猜數字遊戲在Windows應用程式建立猜數字遊戲,程式使用亂數取得1100間的數值,使用者在InputBox輸入視窗輸入猜測的
16、數字後,程式就會回應猜測數字太大或太小,直到使用者猜到數字為止。其執行結果如下圖所示:,8-5-2 Continue繼續迴圈-說明,Continue關鍵字可以讓我們不用執行完整個迴圈的程式碼,就可以馬上執行下一次迴圈。Continue For可以馬上執行下一次For/Next迴圈;Continue Do繼續下一次Do While/Loop迴圈的執行。,8-5-2 Continue繼續迴圈-範例,在猜數字遊戲的Do While/Loop主迴圈,使用If Then條件檢查數字是否在範圍中,如下所示:Do While True If number 100 Then txtOutput.Text&=範圍錯誤:&_ number&vbNewLine Continue Do End If Loop,8-5-2 Continue繼續迴圈-Visual Basic專案,Visual Basic專案:Ch8-5-2猜數字遊戲這個Windows應用程式是修改第8-5-1節的【猜數字遊戲】,新增If Then條件來檢查輸入數字是否在範圍內,如果不是,使用Continue Do馬上執行下一次迴圈。在執行結果按【開始遊戲】鈕開始猜數字遊戲,可以看到InputBox輸入視窗。,End,