計算機程式 廖文淵 Department of Computer Science and Engineering

Slides:



Advertisements
Similar presentations
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Advertisements

Visual Basic 程序设计 第四讲.
第二章 VB的编程机制 【授课时间】第3周,第2次课 【授课题目】 2.1 面向对象程序设计概述 2.2 VB中的对象
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
第四章 控制结构.
赋值语句与输入、输出语句.
Visual Basic 2005學習範本 第5章 選擇結構.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
Visual Basic 6.0之事件 事件(Event)?
新觀念的 VB6 教本 第 3 章表單設計.
Visual Basic程序设计.
程式簡介、VB、物件導向 國立北門高中 林明璋.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
Chapter 1 複習.
Visual Basic快速入门 ADO数据控件与数据绑定控件 VB数据库编程举例 VB开发数据库应用系统实例分析
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现
数组 第 6 章.
巨集病毒與VBA.
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
程式語言 I – VISUAL BASIC 選擇結構語法與應用 Chapter 7 認知
Visual Basic程序设计 第八章 过程 -子程序和函数
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
初识Visual Basic.
第一章 VB概述 本章重点和难点 1.1 VB 概述 1.2 面向对象的程序设计方法基础
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Visual Basic程序设计基础 计算机科学学院.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
Visual Basic 程序设计 教师:王 杨 电话:
新觀念的 VB6 教本 第 6 章 資料型別.
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
Visual Basic程序设计.
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
江西财经大学信息管理学院 《数据库应用》课程组2007
第五章: 輸入與輸出.
第六章 選擇結構 (應用:核取方塊、選項按鈕、框架)
VB语言程序设计教程.
107學年度高一程式設計 上機考試 投影片 加減乘除.
小结 郭清溥.
Ch04 VB.NET的流程控制 網頁程式設計.
巨集與自訂工具列.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
程序基础 2019/4/25.
第二章、第三章错题分析.
Visual Basic 程序设计及应用教程 (6.0版)
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
單元名稱:結構化程式設計 報告人 劉洲溶.
Print方法和函数 2019/5/19.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
算法与Visual Basic程序基础(二)
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
Presentation transcript:

計算機程式 廖文淵 Department of Computer Science and Engineering De-Lin Institute of Technology andres@dlit.edu.tw

第六章 流程控制 6-1 結構化程式設計 結構化程式設計(Structured programming)是設計、撰寫程式的一種方式 第六章 流程控制 6-1 結構化程式設計 結構化程式設計(Structured programming)是設計、撰寫程式的一種方式 它的宗旨在於簡化程式設計的流程,以及減少邏輯錯誤發生的機會 結構化程式設計是使用有限組的控制結構(Control-flow structure)、由上而下的一種設計方式 區塊(block structure)的概念

循序結構 循序結構的敘述會依照它們出現的順序來執行,控制權無條件的由一個敘述緊接著一個敘述、循序的傳遞下去 循序結構是最基礎、簡單的一種方式 它的邏輯圖如下所示 以Visual Basic語法表示循序結構

選擇結構 二元選擇結構 If [Condition] Then [Statement] 如果結果為True(真),那麼就執行Then後面的敘述(Statement) 如果測試條件最後為False(假),那麼就不去理會Then後面的敘述,而直接將控制權轉移至If的下一個敘述 這種結構的邏輯圖如下

If [Condition] Then [Statement A] Else [Statement B] 如果結果為True(真),那麼就執行Then後面的敘述(Statement) 如果結果為False(假),就執行Else後面的敘述(Statement B) 不論執行了Statement A或是Statement B,執行過後都會將控制權轉移至If的下一個敘述 邏輯圖如下所示

多元選擇結構 在各種情況中,視情況選擇一組符合條件的動作來執行 其邏輯圖如下

重複結構 重複結構一般又稱為「迴圈(loop)」或「循環(iteration)」 在迴圈結構中,通常會有一個測試條件,決定何時終止重複執行 由於測試條件所出現的位置不同,又區分為前測式迴圈與後測式迴圈兩種

前測式迴圈 前測式迴圈是在執行迴圈指令前先做測試,測試結果為True時,才會進入迴圈 進入迴圈之後,開始執行Statement部分;執行過Statement的部分後,再繞回迴圈的測試點進行測試 如果結果仍然為True,則再度進入Statement的部分執行 如此週而復始不斷執行,直到測試條件變成False時,執行迴圈結構的下一個敘述 如果測試條件永遠不會是False時,那麼迴圈就無法停止,形成所謂的無窮迴圈(Infinite loop)

後測式迴圈 不論測試條件為何,先執行迴圈指令之後再做測試 如果測試結果為True時,才會離開迴圈,否則再度進入迴圈 其邏輯圖如下所示

6-2 條件判斷 下圖是Visual Basic語言中所提供與條件判斷相關的各種語法、函數分類圖

If...Then敘述 單行式 If 條件式 Then 當條件式為True時要執行的動作 條件式(Condition) 放的是比較(Comparison)運算或比較運算加邏輯運算的動作 比較運算:將兩個資料以比較運算子連接。所得的結果是一個Boolean型別資料(True或False) 如果在條件式中要進行一個以上的比較運算,那麼這些比較敘述間必須以邏輯運算子連接 比較運算子的優先順序高於邏輯運算子 If A >= B And C <> 1 Then Label1 = “條件成立” If (A >= B) And (C <> 1) Then A = B : C = C + 1 If (A >= B) And (C <> 1) Then A = B : _ C = C + 1 加一個空格及底線,就連上下一列敘述

範例 說明 視窗在關閉之前會先詢問使用者是否真的要關閉它 如果使用者回答[是(Y)],那就關閉視窗、把程式結束 如果回答[否(N)],那麼就取消關閉的動作,一切恢復正常 說明 這個範例程式的表單不需要放置任何的控制項

當使用者用滑鼠在右上方的關閉鈕上按鈕時,螢幕上會出現如下圖所示的訊息對話方塊,詢問使用者是否要結束視窗 如果按下[是(Y)],則關閉全部視窗,按[否(N)]則會到原來的視窗

步驟 修改表單上的屬性 在form的QueryUnload事件程序中填入程式碼   Form1 Name frmIF_Test BorderStyle 1 Caption IF...Then敘述測試 在form的QueryUnload事件程序中填入程式碼 1.Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 2. Dim ReturnCode As Integer 3. ReturnCode = MsgBox(“要關閉視窗嗎?”, vbExclamation +vbYesNo, “詢問”) 4. If ReturnCode = vbNo Then Cancel = True 5.End Sub

區塊式 If 條件式 Then 當條件式為True時要執行的動作 End If 例如: . 當條件式為True時要執行的動作 End If 例如: If (A >= B) And (C <> 1) Then A = B : C = C + 1 等同於 If ( A >= B ) And ( C <> 1) Then A = B C = C + 1

If...Then...Else敘述 單行式 區塊式 If 條件式 Then 條件式True時的動作 Else 結果為False的動作 End If

範例 說明 運用If…Then…Else敘述來判斷使用者按下訊息對話方塊上的不同按鈕,並做出不同的回應 開始執行時,表單上只有一個命令鈕[我想問問題]

用滑鼠在[我想問問題]上按鈕,螢幕上會出現如下圖所示的訊息對話方塊,詢問使用者 如果按下[是(Y)],則訊息對話方塊消失後,在原先視窗的標籤上會出現如下圖所示的字樣

按[否(N)]則會出現如下的樣子

步驟 在表單上放一個標籤及一個命令鈕控制項 修改表單、標籤、及命令鈕上的屬性 Form1 Label1 Command1 Name   Form1 Label1 Command1 Name frmIF_Test2 lblResult cmdDisplay BorderStyle 1 (預設值) Caption IF-Then-Else測試 我想問問題

在cmdDisplay的click事件程序中填入程式碼 1. Private Sub cmdDisplay_Click() 2. Dim ReturnCode As Integer 3. ReturnCode = MsgBox("您有錢嗎?", vbInformation + vbYesNo, "人生一問") 4. If ReturnCode = vbYes Then 5. lblResult = "分我一點吧!" 6. Else 7. lblResult = "我也沒錢耶!" 8. End If 9. End Sub

IIf函數 IIf(條件式,當條件式為True時的值,當條件式為False時的值) 例如:J = IIf(S >= 60,“及格”,“不及格”) 當S大於等於60時,則傳回字串“及格”,也就是說J會存入“及格”這個字串 如果S小於60,那麼就傳回字串"不及格",而J中會存入字串"不及格"

6-3 比較運算 兩個運算元(Operand)透過中間的比較運算子(Operator)所做的運算 比較運算後的結果只有三種:True、False或Null 意 義 運算子 語法 結果為True的條件 結果為False的條件 小於 < A<B A小於B A大於等於B 小於等於 <= A<=B A小於等於B A大於B 大於 > A>B 大於等於 >= A>=B 等於 = A=B A等於B A不等於B 不等於 <> A<>B A、B分別代表運算元,可以是數字、字串或其他運算的結果 當A或B中有任何一者為Null時,經比較的結果都會是Null

6-4 邏輯運算 And運算子 運算元1 運算元2 結 果 True False Null 運算元1的某一個bit 6-4 邏輯運算 And運算子 運算元1 運算元2 結 果 True False Null 運算元1的某一個bit 運算元2中、相對於運算元1的bit 運 算 結 果 1

Or運算子 運算元1 運算元2 結 果 True False Null 運算元1的某一個bit 運算元2中、相對於運算元1的bit 運 算 結 果 1

Not運算子 在Visual Basic中的False相當於0,True相當於-1 運算元 Not運算的結果 True False Null 運算元的某一個bit 運 算 結 果 1 在Visual Basic中的False相當於0,True相當於-1 False值以二進位表示:0000000000000000 True 值以二進位表示:1111111111111111 True = Not false False = Not True

Xor運算子 運算元1 運算元2 結果 True False Null 運算元1的某一個bit 運算元2中、相對於運算元1的bit 運算結果 1

Eqv運算子 運算元1 運算元2 結 果 True False Null 運算元1的某一個bit 運算元2中、相對於運算元1的bit 結 果 True False Null 運算元1的某一個bit 運算元2中、相對於運算元1的bit 運算結果 1

6-5 運算子的優先順序 高 低 算術運算子 比較運算子 邏輯運算子 ^ = Not -(負號) <> And * / < 6-5 運算子的優先順序 高 算術運算子 比較運算子 邏輯運算子 ^ = Not -(負號) <> And * / < Or \ > Xor Mod <= Eqv + - >= Imp & Like Is 低

Examples T Print 2=4-1 Or 2.5 = 5/2 F Print 3 > 0 And 4 <> 4 F Print Not (5 < 10) F Print Not (9 > 5) T Print (5 > 4) And (9 > 5) T Print (7 > 8) Or (Not False) T Print (5 > 2) Xor (9 > 10) T Print (5 < 7) Eqv (8 < 11)

6-6 核取方塊(Check Box) 所謂的「核取方塊」 核取方塊(CheckBox) 選項按鈕(Option Button)

用滑鼠Click一下方框(□的部分),方框中就會出現一個””的符號,這就表示您選取了這個功能 核取方塊彼此之間的功能都是獨立的 以核取方塊的運作方式就像是複選題;在一群選項中可以選擇好幾個

放置核取方塊 放置方式與其他控制項的方式是一樣的 當核取方塊與框架(Frame)合用時,由於牽涉到群組的概念,步驟比較複雜一點 在表單中的核取方塊 在工具箱中的核取方塊圖示

常用的屬性 Caption:標題屬性字串顯示在核取盒的右方,告訴使用者這個核取方塊所代表的功能為何 Value:表示核取方塊在執行時的三種狀態,分別是0、1、2,預設值為0,其說明如下 0 表示不核取,也就是說,在執行時核取方塊呈現不 打勾的狀態 1 表示核取,在執行時核取方塊呈現打勾的狀態 2 灰色 ☆ 這個設定值比較特別,核取方塊會呈現打勾 的狀態,但以灰色(或模糊)顯示之 ☆ 表示忽略這個選項或這個選項沒有作用 ☆ 使用者不能以滑鼠click 直接”按”出這個狀態,但可 以透過程式碼來設定

核取方塊實作 範例 電腦上的顏色是由RGB三種原色所構成的,R代表Red(紅色)、G代表Green(綠色)、B代表Blue(藍色) 在Visual Basic中每一個顏色成分用一個位元組的數值來代表(0~&HFF) Visual Basic在三個位元組前再多加了一個位元組,區分物件所使用的顏色是屬於系統配色,還是調色盤中自訂的顏色 這個例子就是利用核取方塊多選的特性,設計一個簡單的純色混色機 用三個核取方塊代表RGB三個原色是否加入混色 如果使用者核取其中一個核取方塊,那就代表要將該顏色加入混色 混色的結果會顯示在一個標籤控制項上。

說明 範例程式開始執行時,您會看到一個標籤控制項及三個核取方塊 標籤控制項一開始的內容是黑色的 而三個核取方塊控制項分別代表紅色成分、綠色成分、藍色成分

使用者以滑鼠在代表紅色成分的核取方塊上Click時,標籤控制項就會顯示出紅色的純色 2.顯示出紅色 1. 在代表紅色的 核取方塊上Click 在代表藍色的核取方塊上Click,Label的顏色又會再混入藍色成分,於是就成了紫色

步驟 先在表單上放置一個標籤及四個核取方塊 修改屬性設定值 Form1 Label1 Check1 Check2 Check3 Name   Form1 Label1 Check1 Check2 Check3 Name frmChkBox lblPanel chkRed ChkGreen chkBlue BackColor (預設值) &H00000000& (黑色) BorderStyle 1 Caption 核取方塊測試 紅色成分 綠色成分 藍色成分

分別在chkRed、chkGreen、與chkBlue的Click事件程序中填入程式碼 1. Private Sub chkBlue_Click() 2. If chkBlue.Value Then 3. lblPanel.BackColor = lblPanel.BackColor Or &HFF0000 4. Else 5. lblPanel.BackColor = lblPanel.BackColor Xor &HFF0000 6. End If 7. End Sub 8. Private Sub chkGreen_Click() 9. If chkGreen.Value Then 10. lblPanel.BackColor = lblPanel.BackColor Or &HFF00& 11. Else 12. lblPanel.BackColor = lblPanel.BackColor Xor &HFF00& 13. End If 14. End Sub 15. Private Sub chkRed_Click() 16. If chkRed.Value Then 17. lblPanel.BackColor = lblPanel.BackColor Or &HFF& 18. Else 19. lblPanel.BackColor = lblPanel.BackColor Xor &HFF& 20. End If 21. End Sub

6-7 選項按鈕(OptionButton) 選項按鈕通常不會獨立出現,在表單中會同時出現好幾個 執行時,使用者只能選取同一群組中的一個選項按鈕(左方的白色圓圈中會出現一個黑點)

VB中的選項按鈕 在工具箱中的選項按鈕圖示 在表單中的選項按鈕

選項按鈕常用的屬性 Caption:選項按鈕的標題屬性字串顯示在其右方,代表這個選項按鈕的功能(或選項) Value:選項按鈕在執行時的兩種狀態,True(選擇)或False(未被選擇),預設值為False True表示點選,在執行時該選項按鈕左邊(或右邊)的圈選欄位中會出現一個黑點 False表示不點選,該選項按鈕左邊(或右邊)的圈選欄位將呈現空白

選項按鈕實作 範例 說明 在這個這個範例程式主要是利用選項按鈕來設定標籤控制項中字串的對齊方式 範例EX6-4開始執行時,畫面上會出現一個標籤、及三個選項按鈕,如下圖所示:

在表單有三個選項按鈕,分別是[ 靠左對齊]、[ 置中對齊]、[ 靠右對齊] 預設值是文字靠左對齊顯示 Click其中一個選項時,在上面所顯示的字串及位置都會隨著改變

這個程式主要是使用標籤(Label)控制項的Alignment屬性,及選項按鈕(OptionButton)的Click事件,來做出更改顯示字串及位置的效果

步驟 在表單上放置一個標籤及三個選項按鈕 修改各物件的屬性值 Form1 Label1 Option1 Option2 Option3   Form1 Label1 Option1 Option2 Option3 Name frmAlignment lblDisplay optLeft optCenter optRight BorderStyle 1 Caption 選項按鈕測試 靠左對齊 置中對齊 靠右對齊

在optLeft、optCenter、optRight三個選項按鈕的Click事件程序中填入程式碼 1. Private Sub optCenter_Click() 2. lblDisplay = "置中對齊" 3. lblDisplay.Alignment = 2 4. End Sub 5. Private Sub optLeft_Click() 6. lblDisplay = "靠左對齊" 7. lblDisplay.Alignment = 0 8. End Sub 9. Private Sub optRight_Click() 10. lblDisplay = "靠右對齊" 11. lblDisplay.Alignment = 1 12. End Sub

6-8 框架(Frame) 視窗上的視覺效果,區分各個選項 將數個選項按鈕(OptionButton)組成群體 框架配合選項按鈕

VB中的框架控制項 在工具箱中的框架圖示 在表單中的框架

以框架群組選項按鈕 建立物件的順序及方法 先在表單中建立一個框架 框架在作用中(周圍出現8個黑點)的狀態下,以拖放的方式在上面建立選項按鈕 1. 確定框架是處於 被選取的狀態 2. 以拖放的方式放 入選項按鈕

已經先放好選項按鈕,事後才決定要加入框架 先將框架放進表單中 將所有的選項按鈕選起來。 選擇一個以上物件的方式是:先點選其中一個物件,然後再按住[Ctrl]或[Shift]鍵不放、點選其他物件 按下[Ctrl]-[X]剪下它們 選擇Frame物件,使其成為作用中的狀態 按下[Ctrl-V]貼上

框架常用的屬性 BorderStyle:設定框架是否出現 Caption:框線上方邊緣的標題文字 1:單線固定(預設值) Caption:框線上方邊緣的標題文字

框架實作 範例 說明 在範例EX6-4中再加上三個選項,用來設定標籤控制項中字串的字型 範例執行時,可以看到有一個標籤、兩個框架、六個選項按鈕

在左邊標名為”對齊方式”的框架中有三個選項按鈕,功能跟範例EX6-4是完全一樣的;當以滑鼠選擇”置中對齊”時,上方的標籤控制項就會顯示出”置中對齊”的字樣,並將對齊方式改為置中對齊 2.字串變為置中對齊 1.選擇置中對齊

在”選擇字型”框架中選擇”標楷體”,標籤控制項中的字型會變成標楷體,同時仍然維持置中對齊的顯示方式 2.字型變為標楷體 1.選擇”標楷體”

步驟 在表單上放置一個標籤、一個框架。接著選擇框架,讓框架成為作用中的狀態 在框架中加入三個選項按鈕。請注意,在每次加入一個選項按鈕後,必須再次點選框架,讓框架成為作用中的樣子,才能再加入下一個選項按鈕 再放一個框架,並在框架中加入三個選項按鈕。您可以試著移動一下框架位置,如果框架中的選項按鈕都會跟著移動,那才是正確的

修改各控制項的屬性值,如下表所示 Form1 Label1 Frame1 Option1 Option2 Option3 Name   Form1 Label1 Frame1 Option1 Option2 Option3 Name frmFrame lblDisplay famAlignment optLeft optCenter optRight BorderStyle 1 (預設值) Caption 框架測試 靠左對齊 對齊方式 置中對齊 靠右對齊   Frame2 Option5 Option6 Option7 Name famFont optFont1 optFont2 optFont3 BorderStyle (預設值) Caption 選擇字型 新細明體 標楷體 勘亭流

分別在optLeft、optCenter、optRight、optFont1、optFont2、optFont3的Click事件程序中填入下列程式碼: 1. Private Sub optLeft_Click() 2. lblDisplay = "靠左對齊" 3. lblDisplay.Alignment = 0 4. End Sub 5. Private Sub optCenter_Click() 6. lblDisplay = "置中對齊" 7. lblDisplay.Alignment = 2 8. End Sub 9. Private Sub optRight_Click() 10. lblDisplay = "靠右對齊" 11. lblDisplay.Alignment = 1 12. End Sub 13. Private Sub optFont1_Click() 14. lblDisplay.FontName = "新細明體" 15. End Sub 16. Private Sub optFont2_Click() 17. lblDisplay.FontName = "標楷體" 18. End Sub 19. Private Sub optFont3_Click() 20. lblDisplay.FontName = "華康勘亭流" 21. End Sub

6-9 巢狀流程控制敘述

If...Then必須與End If成對出現 If...Then與End If配對規則是:取與If...Then最近的End If配成一對 If...Then會找尋與其最近的Else 配成一對

範例 說明 利用巢狀If…Then…Else敘述,針對學生成績做判斷 如果是60分以上,那表示通過測驗 介於50分至60分之間(不含60分)的未通過但可以補考 50分以下的則表示完全失敗 說明 在視窗右上角標名為”分數”的文字框輸入學生分數,例如輸入65,如下圖所示

輸入分數後,按下[開始評量(S)]按鈕,評量結果就會出現在下方由框架所圍住的標籤中 輸入不同的分數,評量結果也會不一樣。底下是分別輸入56分及47分後的評量結果

步驟 先在表單上放置一個標籤、一個文字框、一個命令鈕、及一個框架 選取框架,使其成為作用中的狀態,並在其中放置一個標籤。完成後的樣子如下圖所示

依照下表修改各個物件的屬性值 Form1 Label1 Text1 Command1 Frame1 Label2 Name frmEval   Form1 Label1 Text1 Command1 Frame1 Label2 Name frmEval lblScore txtScore cmdEval famEval LblResult BorderStyle 1 (預設值) Caption 成績評量 分數 開始評量(&S) 評量結果 靠右對齊 Default True MaxLength 3

填入命令鈕cmdEval(原Command1)的Click事件程序 1. Private Sub cmdEval_Click() 2. Dim Score As Single 3. Score = Val(txtScore.Text) 4. If Score >= 60 Then 5. lblResult.Caption = "恭喜!您已經通過!" 6. Else 7. If Score >= 50 Then 8. lblResult.Caption = "成績未達標準,但准予補考。" 9. Else 10. lblResult.Caption = "很抱歉!您未通過考試。" 11. End If 12. End If 13. End Sub

6-10 多選一的敘述 If…Then…ElseIF敘述 If 條件式1 Then If 條件式1 Then 動作A 動作A 6-10 多選一的敘述 If…Then…ElseIF敘述 If 條件式1 Then If 條件式1 Then 動作A 動作A Else ElseIf 條件式2 Then If 條件式2 Then 動作B 動作B ElseIf 條件式3 Then Else 動作C If 條件式3 Then Else 動作C 動作D Else End If 動作D End If

範例 步驟 將前面巢狀If..Then…Else敘述中、cmdEval按鈕的Click事件程序,以If…Then…ElseIf語法改寫一次 開啟範例EX6-6 修改cmdEval按鈕的Click事件程序 1. Private Sub cmdEval_Click() 2. Dim Score As Single 3. Score = Val(txtScore.Text) 4. If Score >= 60 Then 5. lblResult.Caption = "恭喜!您已經通過!" 6. ElseIf Score >= 50 Then 7. lblResult.Caption = "成績未達標準,但准予補考。" 8. Else 9. lblResult.Caption = "很抱歉!您未通過考試。" 10. End If 11. End Sub

Select Case敘述 Select Case 條件運算式 Case 條件值1 動作1 Case 條件值2 動作2 Case 條件值3 動作3  Case 條件值N 動作N Case Else 動作N+1 End Select

條件運算式 If A > B Then 動作1 End If Select Case A Case > B 動作1  End Select 條件值

條件值 Case後面加上一個常數值 Case 100 Case “字串” Case後面加上 運算式1 To 運算式2 Case "A" To "D" Is加比較運算式 Case Is > 10 Case > 10 混合使用 Case 1 To 4, 7, 9, Is > 100

動作 Case Else 由一行或多行的Visual Basic敘述所組成之程式碼區塊 可有可無 處理沒有列舉在前面Case中的狀況 在Select Case敘述中,Case 敘述可以有很多個,而Case Else只能有一個

Select Case的應用實例 範例 步驟 將範例EX6-6修改為Select Case敘述的版本 開啟範例EX6-6 修改cmdEval按鈕的Click事件程序 1. Private Sub cmdEval_Click() 2. Dim Score As Single 3. Score = Val(txtScore.Text) 4. Select Case Score 5. Case 60 TO 100 6. lblResult.Caption = "恭喜!您已經通過!" 7. Case 50 TO 59 8. lblResult.Caption = "成績未達標準,但准予補考。" 9. Case Is < 50 10. lblResult.Caption = "很抱歉!您未通過考試。" 11. End Select 12. End Sub

Choose(數字型別變數,值為1的傳回值,值為2的傳回值...) IIf()函數用來代替If...Then...Else敘述,而Choose()函數則可以用來代替Select Case敘述 Choose()函數的格式如下 Choose(數字型別變數,值為1的傳回值,值為2的傳回值...) 實例 S = Choose(N,"壹","貳","參","肆")

Switch函數 Switch()函數是If…Then…ElseIf的另一個替代方案。Switch()函數的語法如下 實例 Switch(條件式1,條件式1為True時的值,條件式2,條件式2為True時的值...) 實例 S = Switch(Gender=”M” , "先生",Gender=”F” , "小姐")

Exercises 選擇題 2, 5, 8, 9, 13, 15, 16, 20 問答題 1, 2, 6, 10