第8章 迴圈與訊息視窗 [利息計算程式和猜數字遊戲]

Slides:



Advertisements
Similar presentations
南台科技大學 機械工程系 班級 : 車輛三甲 學號 : 學生 : 黃郁鈞.  BMI 值的計算就是 :  體重 / 身高 x 身高  身高需換算成公尺單位計算.
Advertisements

第一單元 建立java 程式.
第 7 課 迴圈與陣列.
視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
第 1 章 公共基础知识 第 2 章 Visual Basic程序开发环境 第 3 章 对象及其操作 第 4 章 数据类型及其运算
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
計算機程式語言實習課.
第四章 控制结构.
第4章 流程控制結構 4-1 結構化程式設計 4-2 程式區塊 4-3 簡單的條件控制敘述 4-4 巢狀條件敘述 4-5 多選一條件敘述
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
第五章 迴圈結構 授課老師:___________.
四 VBScript编程基础.
Chapter 5 迴圈.
BLANK overview.
Chapter 1 複習.
臺北市立大學 資訊科學系(含碩士班) 賴阿福
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
4-4 程式設計之邏輯結構.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Google Data API Spreadsheet
ASP动态网页设计实用教程 主讲教师: 开课单位:.
算法与程序设计.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
SQL Stored Procedure SQL 預存程序.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第6章 迴圈結構 6-1 計數迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-4 While/End While迴圈 6-5 跳出與繼續迴圈
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
安裝JDK 安裝Eclipse Eclipse 中文化
第7章 程序與函數 7-1 模組化程式設計 7-2 程序與函數 7-3 程序與函數的變數範圍 7-4 常用的內建函數 7-5 遞迴函數.
第12章 VBA模块设计.
第3 章 VBScript的控制结构.
第7章 選擇控制項與條件判斷 [速食店點餐系統]
第4章 視窗應用程式的基本輸出入.
第六章 迴 圈 結 構 課程名稱:程式設計 授課老師:李春雄 博士 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」,
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第一單元 建立java 程式.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
江西财经大学信息管理学院 《数据库应用》课程组2007
第 19 章 XML記憶體執行模式.
小结 郭清溥.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
數字定位棋 1-7
期末考.
挑戰C++程式語言 ──第8章 進一步談字元與字串
Controls.
GridView操作 (II).
第6章 運算式與運算子 [算術與多功能計算機]
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
程式語言與邏輯 結構化程式設計:迴圈控制 報告人:國立台灣師大附中 李啟龍 老師 學年度資訊科技概論研習.
網頁設計第十二課.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

第8章 迴圈與訊息視窗 [利息計算程式和猜數字遊戲]

Contents 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 變數 上述迴圈「變數」是計數器變數,其範圍是從「起 始值」到「終止值」,每次增加「增量值」的值, 預設值是1,其執行迴圈次數以增量值1來說就是: 「終止值」-「起始值」+ 1次,其中Next關鍵字後 的「變數」可以省略。

8-1 For/Next計數迴圈-範例 例如:使用For/Next迴圈來計算1萬元5年複利18%的本利和,如下所示: Dim intI, intYear As Integer Dim dblTotal As Double = 10000 Dim dblRate As Double = 0.18 intYear = 5 For intI = 1 To intYear dblTotal += dblTotal * dblRate Next intI

8-1 For/Next計數迴圈-Visual Basic專案 Visual Basic專案:Ch8-1\利息計算程式 在Windows應用程式使用TextBox控制項輸入本金、利率和年限後,即可使用For/Next迴圈計算到此年限複利的本利和,然後在下方Label控制項顯示本利和。其執行結果如下圖所示:

8-2 訊息與輸入視窗-MsgBox訊息視窗(語法) Visual Basic語言的MsgBox()函數可以顯示訊息視窗,提供使用者錯誤訊息或是非題的選擇。例如:確認操作,函數的語法如下所示: MsgBox(提示訊息, [樣式, 視窗標題]) 上述函數參數的最後2個並非必須參數,可以不用指定。各參數的說明,如下所示: 提示訊息:顯示在訊息視窗的訊息字串,MsgBox()函數至少需要提供此參數。 樣式:指定訊息視窗顯示哪些按鈕、圖示和預設按鈕的樣式,這是MsgBoxStyle列舉常數。 視窗標題:顯示在訊息視窗上方標題列的字串,如果沒有指定,預設就是專案名稱。

8-2 訊息與輸入視窗-MsgBox訊息視窗(範例) ret = MsgBox(dblTotal.ToString("C"), _ msgStyle, "本利和") 第1個參數是文字方塊的內容,第2個參數msgStyle 是顯示樣式的整數值,使用的是列舉常數,如果不 只一個,請使用加法來計算樣式值,如下所示: msgStyle = MsgBoxStyle.OKCancel + _ MsgBoxStyle.Information 上述樣式值是顯示「確定」和「取消」鈕和「!」 圖示,最後1個參數是訊息視窗的標題文字。

8-2 訊息與輸入視窗-MsgBox訊息視窗(傳回值) MsgBox()函數如果有傳回值,傳回值就是使用者按下的哪一個按鈕,即MsgBoxResult列舉常數,其說明如下表所示:

8-2 訊息與輸入視窗-InputBox輸入視窗(語法) InputBox輸入視窗可彈出一個視窗來讓使用者輸入資料,在功能上如同文字方塊控制項。InputBox()函數的語法如下所示: InputBox(提示訊息, [標題文字, 預設值, 位置x, 位置y]) 上述函數的最後4個參數並非必須參數,可以不用指定。各參數的說明,如下所示: 提示訊息:顯示在輸入視窗的字串,InputBox()函數至少需要提供此參數。 標題文字:顯示在標題列的文字內容。 預設值:輸入資料的預設值。 位置x、位置y:輸入視窗在螢幕上顯示的位置,沒有指定,預設值是桌面正中央。

8-2 訊息與輸入視窗-InputBox輸入視窗(範例) strValue = InputBox("請輸入金額?", "輸入金額") 上述程式碼的InputBox()函數只有前2個參數,傳回 值是使用者輸入的資料,按下「確定」鈕傳回輸入 字串;「取消」鈕傳回空字串。

8-2 訊息與輸入視窗- Visual Basic專案 Visual Basic專案:Ch8-2\利息計算程式 這Windows應用程式是修改第8-1節的【利息計算程式】,改為使用InputBox()函數輸入本金,MegBox()函數顯示本利和。其執行結果如下圖所示:

8-3 Do/Loop條件迴圈-說明 在Visual Basic語言的條件迴圈結構就是Do/Loop迴圈,以條件測試的位置分成兩種,如下所示: 前測式重複結構:在迴圈開始使用While或Until測試迴圈條件。其語法如下所示: Do [While | Until] 條件 程式區塊 Loop 後測式重複結構:在迴圈結尾使用While或Until測試迴圈條件,因為是在結尾測試條件,所以迴圈至少會執行一次。其語法如下所示: Do Loop [While | Until] 條件

8-3 Do/Loop條件迴圈-Do While/Loop迴圈 Do/Loop迴圈可以使用While條件在迴圈開頭檢查,開頭檢查的目的是檢查是否允許進入迴圈,當While的測試條件成立才允許進入迴圈。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do While intI <= 5 dblTotal += dblTotal * dblRate intI = intI + 1 Loop

8-3 Do/Loop條件迴圈-Do Until/Loop迴圈 Do/Loop迴圈如果使用Until條件在迴圈開始檢查,迴圈是執行到條件成立為止,如果條件不成立就進入迴圈。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do Until intI > 5 dblTotal += dblTotal * dblRate intI = intI + 1 Loop

8-3 Do/Loop條件迴圈- Do/Loop While迴圈 Do/Loop迴圈可以使用While條件在迴圈結尾檢查,此時Do/Loop迴圈至少會執行一次。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do dblTotal += dblTotal * dblRate intI = intI + 1 Loop While intI <= 5

8-3 Do/Loop條件迴圈- Do/Loop Until迴圈 intI = 1 dblTotal = 10000 dblRate = 0.18 Do dblTotal += dblTotal * dblRate intI = intI + 1 Loop Until intI > 5

8-3 Do/Loop條件迴圈-Visual Basic專案 Visual Basic專案:Ch8-3\利息計算程式 這個Windows應用程式是修改第8-1節的【利息計算程式】,改為使用Do/Loop迴圈來計算本利和。其執行結果如下圖所示:

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 > 9 Next intI

8-4 巢狀迴圈-範例說明 巢狀迴圈共有兩層,在第1層的For/Next迴圈執行9次,第二層Do/Loop Until迴圈如果也執行9次,兩層迴圈總共可執行81次,如下表所示:

8-4 巢狀迴圈-再談利息的計算 本節前建立的【利息計算程式】屬於複利計算程式, 其每一年的利息會滾入本金來計算下一年的利息, 例如:信用卡或現金卡的循環利息,就是使用複利 方式來計算利息,所以利滾利的速度非常的快。 之前範例是使用迴圈來計算本利和,事實上,可以 將它改寫成指數運算的複利公式,如下所示: Total = Amount * (1 + Interest) ^ Years

8-4 巢狀迴圈-Visual Basic專案 Visual Basic專案:Ch8-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迴圈就是一個 無窮迴圈,此時就可以使用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應用程式建立猜數字遊戲,程式使用亂數取得1~100間數值,使用者在InputBox輸入視窗輸入猜測的數字後,程式就會回應猜測數字太大或太小,直到使用者猜到數字為止。其執行結果如下圖所示:

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 < 1 Or 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輸入視窗。