Delphi VJ VB VC 討論 聯繫 首頁
MS VB 參考文件

 基礎入門(上)
 基礎入門(下)
 流程控制(上)
 流程控制(下)
 圖形輸出
 事件處理
 多重表單
 MDI 表單(上)
 MDI表單(下)
 檔案系統(上)
 檔案系統(下)
 圖形 API (上)
 圖形 API (下)
 檔案 API
 功能表圖示

作品介紹

免費下載

廠商軟體


流程控制(上)

基本的流程控制:GoTo強制跳躍
要使用強制跳躍敘述GoTo必須先要有『標記』存在。
例如: GoTo L20
��’跳至標記為L20的敘述
Print 50
Print 100
L20:Print 500 ��’標記為L20的敘述

設定標記
原則:

1.標記必須放在敘述之前,並以冒號:隔開
2.標記後可無敘述,但
冒號:不可省略
3.已使用的標記不可重複
4.數字標記後的
冒號:可以省略
push-flower.gif (2012 bytes)例如:789:Print "abc"
345:Print "abc"
標記_10:Print "abc"-�� ’標記可為中文


GoTo敘述
GoTo敘述可以跳到前面的敘述也可以跳到後面的敘述,但要小心無窮迴圈的發生。

push-flower.gif (2012 bytes)例如:Private Sub Command1_Click()
A100: X = 100
Print X
GoTo A100
End Sub

當程式執行後即使按下結束命令鈕都沒用,整個系統都無法使用,唯一的辦法是按下Ctrl+Break進入中斷模式,然後再結束程式。


避免無窮迴圈的敘述 If-Then-GoTo

push-flower.gif (2012 bytes)用法If 條件式 Then GoTo 標記
push-flower.gif (2012 bytes)例如: Private Sub Command1_Click()
x = 1
A100: Print x
x = x + 1
If x <= 5 Then GoTo A100
End Sub


研究:原基礎程式設計教學的習題,原始程式如下

Private Sub Command1_Click()
X = Val(InputBox("請輸入平常成績", "平常成績輸入", "100"))
Y = Val(InputBox("請輸入期中考成績", "期中考成績輸入", "100"))
Z = Val(InputBox("請輸入期末考成績", "期末考成績輸入", "100"))
Ans = X * 0.4 + Y * 0.3 + Z * 0.3
PRINT "學期成績為"; Ans ; "分"
End Sub

現在進階操作檢查輸入的分數是否在0到100之間,若不是則重做輸入程式

Private Sub Command1_Click()
AA:
X = Val(InputBox("請輸入平常成績", "平常成績輸入", "100"))
IF X < 0 or X > 100 Then GoTo AA
BB:

Y = Val(InputBox("請輸入期中考成績", "期中考成績輸入", "100"))
IF Y < 0 or Y > 100 Then GoTo BB
CC:

Z = Val(InputBox("請輸入期末考成績", "期末考成績輸入", "100"))
IF Z < 0 or Z > 100 Then GoTo CC
Ans = X * 0.4 + Y * 0.3 + Z * 0.3
PRINT "學期成績為"; Ans ; "分"
End Sub


有判斷能力的流程控制:If 敘述

不用配合GoTo 的If Then敘述
push-flower.gif (2012 bytes)格式If 條件式 Then 敘述
push-flower.gif (2012 bytes)例如:求解絕對值
S=Val(InputBox("輸入數值")
If S < 0 Then S = -S
Print S

研究:上一單元完成的『學期成績計算』程式可修改如下:
Private Sub Command1_Click()
AA:
X = Val(InputBox("請輸入平常成績", "平常成績輸入", "100"))
If X < 0 Or X > 100 Then
MsgBox "分數不正確,請重新輸入": GoTo AA
BB:
Y = Val(InputBox("請輸入期中考成績", "期中考成績輸入", "100"))
If Y < 0 Or Y > 100 Then
MsgBox "分數不正確,請重新輸入": GoTo BB
CC:
Z = Val(InputBox("請輸入期末考成績", "期末考成績輸入", "100"))
If Z < 0 Or Z > 100 Then MsgBox
"分數不正確,請重新輸入": GoTo CC
Ans = X * 0.4 + Y * 0.3 + Z * 0.3
Print "學期成績為"; Ans; "分"
End Sub


If Then Else 敘述

push-flower.gif (2012 bytes)格式If 條件式 Then
敘述區塊 1
Else
敘述區塊 2
End If

研究:上一單元完成的『學期成績計算』程式中,可將最後成績結果以訊息視窗顯示及格與否:

Private Sub Command1_Click()
AA:
X = Val(InputBox("請輸入平常成績", "平常成績輸入", "100"))
If X < 0 Or X > 100 Then
MsgBox "分數不正確,請重新輸入": GoTo AA
BB:
Y = Val(InputBox("請輸入期中考成績", "期中考成績輸入", "100"))
If Y < 0 Or Y > 100 Then
MsgBox "分數不正確,請重新輸入": GoTo BB
CC:
Z = Val(InputBox("請輸入期末考成績", "期末考成績輸入", "100"))
If Z < 0 Or Z > 100 Then MsgBox
"分數不正確,請重新輸入": GoTo CC
Ans = X * 0.4 + Y * 0.3 + Z * 0.3
If Ans >= 60 Then
MsgBox "學期成績為" & Ans &",及格"
Else
MsgBox "學期成績為" & Ans & ",不及格"
End If
End Sub


逐一過濾條件的 ElseIf

格式:If 條件式1 Then
敘述區塊 1
ElseIf 條件式2 Then
敘述區塊 2


ElseIf 條件式N Then
敘述區塊 N
ElseIf 條件式N+1 Then
敘述區塊 N+1

End If

例題:輸入正整數並判斷其位數

Private Sub Command1_Click()
L10:
N = Val(InputBox("請輸入一正整數"))
If N < 0 Then MsgBox "請輸入正整數!": GoTo L10
If N < 10 Then
Print N; "一位數"
ElseIf N < 100 Then
Print N; "二位數"
ElseIf N < 1000 Then
Print N; "三位數"
Else
Print N; "四位數(含)以上"
End If
End Sub




本網頁由昱得資訊工作室製作(C) Copyright Valor-Sttudio since in 1993

 

本網站全部內容係屬【昱得資訊工作室】版權所有,轉載必究,
非經正式書面同意,不得將全部或部分內容,以任何方式轉載於其他網站或用於任何商業行為