Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述.

Similar presentations


Presentation on theme: "第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述."— Presentation transcript:

1 第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述

2 5-1 結構化程式設計 5-1-1 結構化程式設計 5-1-1 結構化程式設計 5-1-2 流程控制的基礎 5-1-2 流程控制的基礎

3 5-1-1 結構化程式設計 - 說明 結構化程式設計是一種軟體開發方法,它是用來 組織和撰寫程式碼的技術,使用由上而下的設計 方法來分析問題,將程式分解成階層架構的「模 組」( Module )。 結構化程式設計是一種軟體開發方法,它是用來 組織和撰寫程式碼的技術,使用由上而下的設計 方法來分析問題,將程式分解成階層架構的「模 組」( Module )。 每個模組是一段擁有獨立功能的程式碼,而且只 有單一的進入點和離開點,各模組間使用三種流 程控制:循序結構( Sequential )、選擇結構 ( Selection )和重複結構( Iteration )來整合。 每個模組是一段擁有獨立功能的程式碼,而且只 有單一的進入點和離開點,各模組間使用三種流 程控制:循序結構( Sequential )、選擇結構 ( Selection )和重複結構( Iteration )來整合。 結構化程式設計的主要觀念有三項,如下所示: 結構化程式設計的主要觀念有三項,如下所示: 由上而下設計方法。 由上而下設計方法。 流程控制結構。 流程控制結構。 模組。 模組。

4 5-1-1 結構化程式設計 - 由上而下 設計方法 由上而下設計方法是面對問題時,先將整 個問題分解成數個獨立功能的大模組,再 對於這每一個大模組,一一分割成數個小 模組,位在下層的模組並不會跳到上層模 組,如此一直往下細分。 由上而下設計方法是面對問題時,先將整 個問題分解成數個獨立功能的大模組,再 對於這每一個大模組,一一分割成數個小 模組,位在下層的模組並不會跳到上層模 組,如此一直往下細分。 等這些細分的小問題被一一解決且測試完 成後,再將它們整合起來,如此一層層向 上來完成整個程式設計。 等這些細分的小問題被一一解決且測試完 成後,再將它們整合起來,如此一層層向 上來完成整個程式設計。

5 5-1-2 流程控制的基礎 - 說明 程式語言撰寫的程式碼大部分是一列指令 接著一列指令循序的執行,但是對於複雜 的工作,為了達成預期的執行結果,我需 要使用「流程控制結構」( Control Structures )來改變執行順序。 程式語言撰寫的程式碼大部分是一列指令 接著一列指令循序的執行,但是對於複雜 的工作,為了達成預期的執行結果,我需 要使用「流程控制結構」( Control Structures )來改變執行順序。

6 5-1-2 流程控制的基礎 - 循序結構 循序結構是程式預設的執行方式,也就是 一個敘述接著一個敘述依序的執行,如下 圖所示: 循序結構是程式預設的執行方式,也就是 一個敘述接著一個敘述依序的執行,如下 圖所示:

7 5-1-2 流程控制的基礎 - 選擇結構 選擇結構是一種條件控制敘述,它是一個選擇題, 可以分為單一選擇、二選一或多選一共三種。程 式執行順序是依照關係運算式的條件,來決定執 行哪一個區塊的程式碼,如下圖所示: 選擇結構是一種條件控制敘述,它是一個選擇題, 可以分為單一選擇、二選一或多選一共三種。程 式執行順序是依照關係運算式的條件,來決定執 行哪一個區塊的程式碼,如下圖所示:

8 5-1-2 流程控制的基礎 - 重複結構 重複結構就是迴圈控制,它是重複執行一 個區塊的程式碼,提供一個結束條件結束 迴圈的執行,依結束條件測試的位置不同 分為兩種,如下所示: 重複結構就是迴圈控制,它是重複執行一 個區塊的程式碼,提供一個結束條件結束 迴圈的執行,依結束條件測試的位置不同 分為兩種,如下所示: 前測式重複結構 前測式重複結構 後測式重複結構 後測式重複結構

9 5-1-2 流程控制的基礎 - 前測式重複 結構 測試迴圈結束條件在程式區塊的開頭,需 要符合條件,才能執行迴圈中的程式碼, 如下圖所示: 測試迴圈結束條件在程式區塊的開頭,需 要符合條件,才能執行迴圈中的程式碼, 如下圖所示:

10 5-1-2 流程控制的基礎 - 後測式重複 結構 測試迴圈結束條件在程式區塊的結尾,所 以迴圈的程式區塊至少會執行一次,如下 圖所示: 測試迴圈結束條件在程式區塊的結尾,所 以迴圈的程式區塊至少會執行一次,如下 圖所示:

11 5-2 關係與邏輯運算子 5-2-1 關係運算子 5-2-1 關係運算子 5-2-2 邏輯與位元運算子 5-2-2 邏輯與位元運算子

12 5-2-1 關係運算子 - 說明 關係運算子也稱為比較運算子,它並沒有優先順 序的分別,通常都是使用在迴圈和條件敘述作為 判斷條件,其運算結果是布林值的 True 或 False , 如下表所示: 關係運算子也稱為比較運算子,它並沒有優先順 序的分別,通常都是使用在迴圈和條件敘述作為 判斷條件,其運算結果是布林值的 True 或 False , 如下表所示:

13 5-2-1 關係運算子 - 比較方式 Visual Basic 不同資料型態的比較方式,如 下表所示: Visual Basic 不同資料型態的比較方式,如 下表所示:

14 5-2-2 邏輯與位元運算子 - 說明 邏輯運算子的運算元如果是關係運算式的 Boolean 資料型態,此時的角色是邏輯運 算子;如為數值, And 、 Or 和 Xor 則是位元 運算子。 邏輯運算子的運算元如果是關係運算式的 Boolean 資料型態,此時的角色是邏輯運 算子;如為數值, And 、 Or 和 Xor 則是位元 運算子。

15 5-2-2 邏輯與位元運算子 - 邏輯運算 子 在迴圈和條件敘述的判斷條件如果不只一個,需 要使用邏輯運算子來連接,如下表所示: 在迴圈和條件敘述的判斷條件如果不只一個,需 要使用邏輯運算子來連接,如下表所示:

16 5-2-2 邏輯與位元運算子 - 邏輯運算 子範例 對於複雜的關係運算式可以使用邏輯運算 子連接,一些實際的運算式範例,如下表 所示: 對於複雜的關係運算式可以使用邏輯運算 子連接,一些實際的運算式範例,如下表 所示:

17 5-2-2 邏輯與位元運算子 - 位元運算 子 如果運算元是 Byte 、 Short 、 Integer 或 Long 等 數值時, And 、 Or 和 Xor 是「位元運算子」 ( Bitwise Operators ),能夠進行二進位值的 位元運算。 如果運算元是 Byte 、 Short 、 Integer 或 Long 等 數值時, And 、 Or 和 Xor 是「位元運算子」 ( Bitwise Operators ),能夠進行二進位值的 位元運算。 And 、 Or 和 Xor 位元運算是以二進位表示法的每 一個 0 或 1 值的位元進行運算,其每一個位元的運 算結果( a 和 b 代表一個位元),如下表所示: And 、 Or 和 Xor 位元運算是以二進位表示法的每 一個 0 或 1 值的位元進行運算,其每一個位元的運 算結果( a 和 b 代表一個位元),如下表所示:

18 5-2-2 邏輯與位元運算子 - 位元運算 子範例 一些位元運算式的範例,括號內是二進位 的值,如下表所示: 一些位元運算式的範例,括號內是二進位 的值,如下表所示:

19 5-3 簡單的條件敘述 5-3-1 If Then 是否選條件敘述 5-3-1 If Then 是否選條件敘述 5-3-2 If Then/Else 二選一條件敘述 5-3-2 If Then/Else 二選一條件敘述 5-3-3 IIf() 條件函數 5-3-3 IIf() 條件函數

20 5-3-1 If Then 是否選條件敘述 - 語法 If Then 條件敘述是一種是否執行的條件, 決定是否執行區塊內的程式碼。如果 If 條件 為 True ,就執行 Then/End If 間的程式碼, 其語法如下所示: If Then 條件敘述是一種是否執行的條件, 決定是否執行區塊內的程式碼。如果 If 條件 為 True ,就執行 Then/End If 間的程式碼, 其語法如下所示: If 條件 Then 程式區塊 程式區塊 End If 上述「條件」是第 5-2 節的關係運算式。 上述「條件」是第 5-2 節的關係運算式。

21 5-3-1 If Then 是否選條件敘述 - 範例 例如:學生成績超過 60 分是及格分數,如下所示: 例如:學生成績超過 60 分是及格分數,如下所示: If txtScore.Text >= 60 Then lblOutput.Text &= " 成績在範圍中.. " & _ lblOutput.Text &= " 成績在範圍中.. " & _ vbNewLine vbNewLine lblOutput.Text &= " 學生成績及格 : " & _ lblOutput.Text &= " 學生成績及格 : " & _ txtScore.Text & vbNewLine txtScore.Text & vbNewLine End If 上述條件為 True ,就執行區塊的程式碼,可以顯 示文字內容。 上述條件為 True ,就執行區塊的程式碼,可以顯 示文字內容。

22 5-3-1 If Then 是否選條件敘述 - 流程 圖

23 5-3-2 If Then/Else 二選一條件敘述 - 語法 更進一步如果擁有排它情況的兩個執行區塊,只 能二選一。我們可以加上 Else 關鍵字,如果 If 條 件為 True ,就執行 Then/Else 間的程式碼; False 就執行 Else/End If 間的程式碼,其語法如 下所示: 更進一步如果擁有排它情況的兩個執行區塊,只 能二選一。我們可以加上 Else 關鍵字,如果 If 條 件為 True ,就執行 Then/Else 間的程式碼; False 就執行 Else/End If 間的程式碼,其語法如 下所示: If 條件 Then 程式區塊 1 程式區塊 1Else 程式區塊 2 程式區塊 2 End If

24 5-3-2 If Then/Else 二選一條件敘述 - 範例 例如:使用 If Then/Else 條件敘述,以身 高來決定購買半票或全票,如下所示: 例如:使用 If Then/Else 條件敘述,以身 高來決定購買半票或全票,如下所示: length = CInt(txtLength.Text) If length > 120 Then lblOutput.ForeColor = Color.Blue lblOutput.ForeColor = Color.Blue lblOutput.Text = " 購買全票 !" lblOutput.Text = " 購買全票 !"Else lblOutput.ForeColor = Color.Red lblOutput.ForeColor = Color.Red lblOutput.Text = " 購買半票 !" lblOutput.Text = " 購買半票 !" End If

25 5-3-2 If Then/Else 二選一條件敘述 - 流程圖

26 5-3-3 IIf() 條件函數 Visual Basic 的 IIf() 條件函數主要是使用 在指定敘述,可以使用條件來指定變數值, 其語法如下所示: Visual Basic 的 IIf() 條件函數主要是使用 在指定敘述,可以使用條件來指定變數值, 其語法如下所示: 變數 = IIf( 關係 / 條件運算式, 變數 1, 變數 2) 上述指定敘述的 "=" 號右邊是條件函數,如 同 If/Else 條件,若條件成立,傳回值是變 數 1 ,就是將變數值指定成變數 1 ;否則傳 回變數 2 ,將變數值指定成變數 2 。例如: 12/24 小時制的轉換,如下所示: 上述指定敘述的 "=" 號右邊是條件函數,如 同 If/Else 條件,若條件成立,傳回值是變 數 1 ,就是將變數值指定成變數 1 ;否則傳 回變數 2 ,將變數值指定成變數 2 。例如: 12/24 小時制的轉換,如下所示: hour = IIf(hour >= 12, hour-12, hour)

27 5-4 選擇控制項 5-4-1 核取方塊控制項 5-4-1 核取方塊控制項 5-4-2 選項按鈕控制項 5-4-2 選項按鈕控制項 5-4-3 群組方塊控制項 5-4-3 群組方塊控制項

28 5-4 選擇控制項 在 Visual Basic 程式可以使用多種控制項來 配合條件敘述,以便建立選擇功能的使用 介面,如下圖所示: 在 Visual Basic 程式可以使用多種控制項來 配合條件敘述,以便建立選擇功能的使用 介面,如下圖所示:

29 5-4-1 核取方塊控制項 - 說明 核取方塊是一個開關,可以讓使用者選擇 是否開啟功能或設定某些參數。如果在表 單擁有多個核取方塊控制項,每一個控制 項都是獨立選項,換句話說,它允許複選。 核取方塊是一個開關,可以讓使用者選擇 是否開啟功能或設定某些參數。如果在表 單擁有多個核取方塊控制項,每一個控制 項都是獨立選項,換句話說,它允許複選。

30 5-4-1 核取方塊控制項 - 屬性 核取方塊控制項的常用屬性 核取方塊控制項的常用屬性

31 5-4-1 核取方塊控制項 - 是否選取 當使用者選取核取方塊後,程式可以檢查 核取方塊的 Checked 屬性,以判斷使用者 是否選取核取方塊,如下所示: 當使用者選取核取方塊後,程式可以檢查 核取方塊的 Checked 屬性,以判斷使用者 是否選取核取方塊,如下所示: If chkOriginal.Checked Then total += 250 * quantity total += 250 * quantity End If

32 5-4-2 選項按鈕控制項 - 說明 選項按鈕是二選一或多選一的選擇題,使 用者可以在一組選項按鈕中選取一個選項, 它是一個單選題。 選項按鈕是二選一或多選一的選擇題,使 用者可以在一組選項按鈕中選取一個選項, 它是一個單選題。

33 5-4-2 選項按鈕控制項 - 屬性 選項按鈕控制項的常用屬性 選項按鈕控制項的常用屬性

34 5-4-2 選項按鈕控制項 - 是否選取 當使用者選取選項按鈕後,程式一樣是檢 查 Checked 屬性,以判斷是否已選取該選 項按鈕,如下所示: 當使用者選取選項按鈕後,程式一樣是檢 查 Checked 屬性,以判斷是否已選取該選 項按鈕,如下所示: If rdbRare.Checked Then lblOutput.Text = " 三分熟 " lblOutput.Text = " 三分熟 " End If

35 5-4-3 群組方塊控制項 - 說明 「群組方塊」( GroupBox )是一種容器控制項, 在此控制項中可以新增其他控制項,以便讓其中 的控制項屬於同一群組。在功能上除了美化控制 項編排外,還可以組織表單眾多不同的控制項。 「群組方塊」( GroupBox )是一種容器控制項, 在此控制項中可以新增其他控制項,以便讓其中 的控制項屬於同一群組。在功能上除了美化控制 項編排外,還可以組織表單眾多不同的控制項。

36 5-4-3 群組方塊控制項 - 屬性 群組方塊控制項的常用屬性 群組方塊控制項的常用屬性

37 5-5 巢狀條件敘述 - 說明 在 If 條件敘述如果擁有其他 If 條件敘述,此程式架 構稱為「巢狀條件敘述」,如下所示: 在 If 條件敘述如果擁有其他 If 條件敘述,此程式架 構稱為「巢狀條件敘述」,如下所示: If chkForeColor.Checked Then If rdbBlue.Checked Then If rdbBlue.Checked Then lblOutput.ForeColor = Color.Red lblOutput.ForeColor = Color.Red Else Else lblOutput.ForeColor = Color.Yellow lblOutput.ForeColor = Color.Yellow End If End IfElse If rdbBlue.Checked Then If rdbBlue.Checked Then lblOutput.BackColor = Color.Red lblOutput.BackColor = Color.Red Else Else lblOutput.BackColor = Color.Yellow lblOutput.BackColor = Color.Yellow End If End If End If

38 5-5 巢狀條件敘述 - 流程圖

39 5-6 多選一條件敘述 5-6-1 If Then/ElseIf 多選一條件敘述 5-6-1 If Then/ElseIf 多選一條件敘述 5-6-2 Select Case 多選一條件敘述 5-6-2 Select Case 多選一條件敘述 5-6-3 Choose() 函數 5-6-3 Choose() 函數

40 5-6-1 If Then/ElseIf 多選一條件敘述 - 說明 If Then/ElseIf 條件敘述是 If Then/Else 條件敘述的延伸, 使用 ElseIf 來重複建立多選一條件敘述。例如:四則運算 的 If Then/ElseIf 條件敘述,如下所示: If Then/ElseIf 條件敘述是 If Then/Else 條件敘述的延伸, 使用 ElseIf 來重複建立多選一條件敘述。例如:四則運算 的 If Then/ElseIf 條件敘述,如下所示: If rdbAdd.Checked = True Then result = opd1 + opd2 ' 加 result = opd1 + opd2 ' 加 ElseIf rdbSubtract.Checked = True Then result = opd1 - opd2 ' 減 result = opd1 - opd2 ' 減 ElseIf rdbMultiply.Checked = True Then result = opd1 * opd2 ' 乘 result = opd1 * opd2 ' 乘 ElseIf rdbDivide.Checked = True Then result = opd1 / opd2 ' 除 result = opd1 / opd2 ' 除Else MsgBox(" 錯誤 : 沒有選擇運算子 !") MsgBox(" 錯誤 : 沒有選擇運算子 !") End If

41 5-6-1 If Then/ElseIf 多選一條件敘述 - 流程圖

42 5-6-2 Select Case 多選一條件敘述 - 語法 Select Case 多選一條件敘述比 If Then/ElseIf 多條件敘述來的清楚明白,程式碼也比較簡潔。 它可以依照符合條件來執行不同區塊的程式碼, 其語法如下所示: Select Case 多選一條件敘述比 If Then/ElseIf 多條件敘述來的清楚明白,程式碼也比較簡潔。 它可以依照符合條件來執行不同區塊的程式碼, 其語法如下所示: Select Case 運算式 Case 值 1 Case 值 1 程式區塊 1 程式區塊 1 Case 值 2 Case 值 2 程式區塊 2 程式區塊 2 ……. ……. Case Else Case Else 程式區塊 N 程式區塊 N End Case

43 5-6-2 Select Case 多選一條件敘述 - 範例 例如:取得運費費率的 Select Case 條件, 如下所示: 例如:取得運費費率的 Select Case 條件, 如下所示: Select Case amount Case Is < 1000 Case Is < 1000 rate = 0.1 rate = 0.1 Case 1000 To 4999 Case 1000 To 4999 rate = 0.08 rate = 0.08 Case 5000 To 9999 Case 5000 To 9999 rate = 0.05 rate = 0.05 Case Is >= 10000 Case Is >= 10000 rate = 0 rate = 0 End Select

44 5-6-2 Select Case 多選一條件敘述 - Case 條件 Case 條件的程式碼範例,如下表所示: Case 條件的程式碼範例,如下表所示:

45 5-6-2 Select Case 多選一條件敘述 - 流程圖

46 5-6-3 Choose() 函數 Visual Basic 的 Choose() 函數可以依據第 1 個參數的整數值,來傳回對應值,如下所 示: Visual Basic 的 Choose() 函數可以依據第 1 個參數的整數值,來傳回對應值,如下所 示: lblOutput.Text=Choose(dtDay, " 星期日 ", " 星期一 ", _ " 星期二 ", " 星期三 ", " 星期四 ", " 星期五 ", " 星期六 ") " 星期二 ", " 星期三 ", " 星期四 ", " 星期五 ", " 星期六 ") 上述程式碼依照變數 dtDay 的整數值,值 1 傳回第 2 個參數,即星期日,值 2 傳回第 3 個 參數,依此類推。 上述程式碼依照變數 dtDay 的整數值,值 1 傳回第 2 個參數,即星期日,值 2 傳回第 3 個 參數,依此類推。


Download ppt "第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述."

Similar presentations


Ads by Google