程式語言 -Visual Basic 條件結構
IF 條件結構 標準架構 IF 條件敘述 THEN 程式碼1 ELSE 程式碼2 END IF
範例1 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, Dim score As Single score = Val(TextBox1.Text) If score >= 60 Then Label2.Text = "恭喜及格" Else Label2.Text = "你死當了" End If End Sub End Class
簡化架構 IF 條件敘述 Then 單行程式 (當條件結構中所要執行的程式只有一行時,可將該行程式置於Then之後,並可省略End IF) IF 條件敘述 Then 單行或多行程式 End IF
IF 條件結構 擴充架構 IF 條件敘述 Then 程式碼(可多行) ElseIF 條件敘述 Then Else End IF 可以0組以上 可省略
巢狀式結構 IF …. Then 程式區塊1 Else IF … Then 程式區塊2 Else 程式區塊3 End IF End IF
範例2 Private Sub Button1_Click(ByVal sender As IF Val(TextBox1.Text) >=90 Then Label1.Text=“優等” ElseIF Val(TextBox1.Text) >=80 Then Label1.Text=“甲等” ElseIF Val(TextBox1.Text) >=70 Then Label1.Text=“乙等” Else Label1.Text=“丙等” End IF End Sub
範例3—控制項間的搭配 建立介面
撰寫核取方塊1(CheckBox1)程式 Private Sub CheckBox1_CheckedChanged(ByVal … 撰寫核取方塊1(CheckBox1)程式 Private Sub CheckBox1_CheckedChanged(ByVal ….. IF CheckBox1.Checked = True Then TextBox1.Enabled = True TextBox1.Focus() Else TextBox1.Enabled = False End IF End Sub 說明: CheckBox1_CheckedChanged 事件即為當核取方塊1勾選狀態被改變 .Enable為設定控制項啟動作用(對文字框而言,True為接受資料輸入,反之不接受) .Focus為設定游標至控制項 以同樣方式撰寫核取方塊2之程式
撰寫送出鈕(Button1)控制程式 Private Sub Button1_Click(ByVal …… Dim tie, bag, sum as Integer tie = 0 : bag = 0 : sum = 0 IF CheckBox1.Checked = True Then tie = 50 * Val(Textbox1.Text) End IF IF CheckBox2.Checked = True Then bag = 150 * Val(Textbox2.Text) End IF sum = tie + bag MsgBox(“總計” & sum & “元” , , “結帳” ) End Sub 說明 冒號( :)可用於將指令串寫於同一行
撰寫取消鈕(Button2)控制程式 Private Sub Button2_Click(ByVal …… CheckBox1 撰寫取消鈕(Button2)控制程式 Private Sub Button2_Click(ByVal …… CheckBox1.Checked = False CheckBox2.Checked = False TextBox1.Text = “” TextBox1.Enabled = False TextBox2.Text = “” TextBox2.Enabled = False End Sub
比較運算 運算子 意義 舉例 = 等於 5=2+3 →傳回True <> 不相等 5<>2+3 →傳回False 小於 5<2+4 →傳回True > 大於 5>2+1 →傳回True <= 小於等於 5<=2+3 →傳回True >= 大於等於 5>=2+4 →傳為False
資料的比較方式 當比較運算子兩邊都為數值資料時,數值大者為大 當比較運算子兩邊都為字串資料時,中文字>小寫英文字母>大寫英文字母>數字 當比較運算子兩邊都為日期資料時,越晚的日期越大
範例—比較輸入的資料大小 Private Sub Button1_Click(ByVal sender …… IF TextBox1.Text > TextBox2.Text Then Label3.Text = "我比較大" Else IF TextBox1.Text = TextBox2.Text Then Label3.Text = "哈,兩個一樣大" Label3.Text = "你比我大" End If End Sub0
邏輯運算 AND:只要有一邊False,結果就為False 範例 True AND True →結果為True True AND False →結果為False 範例 3>1 AND 5>3 顯示結果為True 4<2 AND 10<20 顯示結果為False
OR:只要有一邊True,結果就為True True OR False →結果為True False OR False →結果為False 範例 3>5 OR 5>1 結果為True 1>2 OR 2>3 結果為False
NOT:結果反向 Not True →結果為False 範例 Not 3>1 結果為False Not 5>10 結果為True
範例—電影分級 Private Sub Button1_Click(ByVal sender Dim age As Single age = Val(TextBox1.Text) If age < 6 And age > 0 Then Label2.Text = "可以看普通級電影" Else If age < 12 And age >= 6 Then Label2.Text = "可以看保護級電影" If age < 18 And age >= 12 Then Label2.Text = "可以看輔導級電影" If age >= 18 Then Label2.Text = "可以看限制級電影" Label2.Text = "哩喜來亂ㄟ喔" End If End Sub
練習 設計一程式,輸入月份的天數 程式基本條件: 一文字框,輸入1~12的月份。 一命令按鈕,按下後開始執行。 一標籤,顯示該月份的天數。 變數一律使用整數變數。
Select Case 條件結構 主要特性:多重判斷 基本架構 Select Case 資料或運算式 Case 條件1 程式區段1 Case 條件2 程式區段2 Case 條件3 程式區段3 Case Else 程式區段 End Select
範例—改寫電影分級 Dim age As Integer age = Val(Textbox1.Text) Select Case age Case 1,2,3,4,5 Label1.Text=“可以看普通級電影” Case 6 To 11 Label1.Text=“可以看保護級電影” Case 12 To 17 Label1.Text=“可以看輔導級電影” Case IS >=18 Label1.Text=“可以看限制級電影” Case Else Label1.Text=“輸入年齡有問題” End Select
範例--亂數的使用 Public Class Form1 Private Sub Button1_Click(ByVal sender … Randomize() Label1.Text = Int(10 * Rnd()) End Sub End Class
練習 設計一猜數字遊戲。 程式基本條件: 產生一1~100之間的數字 a 一Button按下則重新產生亂數 TextBox輸入猜測的數字 一Button,按下後開始判斷。 Label顯示結果。 產生一1~100之間的數字 a 若輸入的數字大於產生的亂數,則於標籤顯示「太大了」,反之則顯示「太小了」,若一樣則顯示「答對了」。