版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VisualBasic程序設計
第九講
第四章程序流程的控制
(一)
2011-6-28
1
關系表達式
布爾表達式
選擇結構
循環(huán)結構
常用控件的使用
2011-6-282
§4.1關系運算符和關系表達式
4.1.1關系運算符VB提供六種關系運算符
關系物理意義例子說明
運算符
<小于若x=5,y=2求x<y的值值為False
小于等于若求〈=的值值為
<=x=2,y=4xyTrue表4?1
>大于“3”>8值為False
>=大于等于0>=(1<5)值為True
—等于若乂="wer”求x="wer”值為True
<>2011-6-:!8不等于"asd"v>"qwe”值為True3
)?A>1
4.1.2關系表達式
LVB中的關系表達式格式為:
v表達式1>v關系運算符,v表達式2>[v關系運算符>
v表達式3>],...]
2.說明:
(1)其中〈表達式〉可為算術表達式、字符串表達式
和日期型表達式。
(2)關系表達式求值的次序是先求關系運算符兩邊
表達式的值,再求關系表達式的值。關系表達式的
值為Boolean型,只有兩個值True和False。
(3)若關系運算符兩邊為算術表達式時,則應先計
算算術表達式的值,再進行關系比較。
1?蜀A?1
(4)若關系運算符兩邊為字符串表達
式時,按字符串中每個字母的ASCII
碼逐一進行比較,若比較的前幾個
字母的ASCII碼都一樣,而當比較到
后面哪一個字母不一樣,則哪個字
母的ASCII碼數值大,則對應的字符
串就大。
2011-6-285
例如:
“qwert”>="qweRt”的值為True。
常見字符的ASCH值大小排列如下:
“空格”v"O"vTv…v“9”
v“A"v“B"v.?.v“Z”
v“a"v“b”v...v“z”
若關系運算符兩邊為日期型表達式
時,按日期的先后次序,日期在前的值
小。
2011-6-286
例如:
#08/24/98#>#10/23/96#值為True。
#09/13/00#<#09/12/99#值為False。
3.注意:
因為浮點數在計算機內不能精確表示,
所以在VB中不能用“=”來比較兩個單精度
或雙精度數的浮點數。
例如:
5.0*4.0=20.0在數學上是成立的,而
在VB中其值可能為False。若需要比較兩個
浮點數時,則應寫成下列形式:
Abs(5.0*4.0-x)<=le-5若(5.0*4.0-x)的絕
款值小于等于le?5時,則認為x整扇*4小
在VBe不能把數學中的不等區(qū)
10〈xW20表示成10<x<=20,若表示
成10<x<=20這種形式,不論x為柯
值關系表達式10<x<=20的值都為
True。
關系表達式10<x<=20相當于
(10<x)<=20由于(10<x)的值
無論為True(-l)或False(O)都小于20,
所以10vxv=20的值總為True。這顯
然與數學中的不等式的意義不同。
2011-6-288
§4.2布爾運算符和布爾表達式
對于不能用關系表達式表示的較復雜
的條件可用布爾表達式來表示。如上面提
判的數學不等式lOvxO,在VB中,應表
示成x>10Andx<=20o
4.2.1布爾運算符和布爾表達式
1.布爾運算符。
VB中共有六種布爾運算符,它們是:
And、Or、Not、Xor>Eqv和Imp。
2011-6-289
表4?2布爾運算符
布爾運算符物理意義舉例說明
And邏輯與運算2<3And5>3與運算兩邊的表達式都為真
值為True時結果為真,否則為假。
Or邏輯或運算Or5>0或運算兩邊的表達式只要有一
值為True個為真,結果就為真(True)
兩邊都為假時結果才為假。
Not邏輯非運算Notx>=6非運算對表達式的值取反。
Xor邏輯異或運算"a''v"b"Xor5<0異或運算兩邊表達式的值不
值為True同,則結果為真,相等時結
果為假。
Eqv邏輯等運算3<2Eqv(3-邏輯等運算兩邊表達式的值
l)<0相同,則結果為真,不相同
值為True時,結果為假。
2011-6-2810
表4?2布爾運算符(續(xù))
布爾運算符物理意義舉例說明
Imp邏輯隱含運3<2Imp3>0邏輯隱含運算第一個表達式
算值為True的值為假(False)則第二個
3<2Imp5<2表達式不論值為什么值,結果
值為True都為真(True)
3>0Imp2>0若第一個表達式值為真,則
值為True第二表達式為真時結果為真。
5>3Imp3<2為假時結果為假。
值為False
nni1乙GQ11
表4-3布爾運算真值表
abaAndbaOrbNotaaXorbaEqvb
TrueTrueTrueTrueFalseFalseTrue
TrueFalseFalseTrueFalseTrueFalse
FalseTrueFalseTrueTrueTrueFalse
FalseFalseFalseFalseTrueFalseTrue
2011-6-2812
422VB運算符的優(yōu)先級
VB運算符的優(yōu)先級:
算術運算符運算級最高,關系運算符次
之,布爾運算符優(yōu)先級別最低。
在算術運算符中,括號最優(yōu)先,其它優(yōu)
先次序依次是函數、乘方(人)、乘或除(*
或/)、整除(\)、求余(Mod)、加加減
(+或?)O
在關系運算符中,六個運算符的級別相
同。
在布爾運算符中最常用的三個布爾運算
符中,Not最高,And次之,Or最低。
1??>1
表4.4VB運算符的優(yōu)先級
運算優(yōu)先級運算符運算符類型
1A(乘方運算)
2-(求負數)
算術運算符
3*或/(乘或除)
4\(整除)
5Mod(求余數)
6+或-(加或減)
7&(字符串連接運算)字符串運算符
8<=或<或>=或>或=或<>關系運算符
9Not(非運算)布爾運算符
10And(與運算)
用11-6-2814
Or(或運算)
已知:a=3.5,b=5.0,c=2.5,d=1.0則
下列表達式的運算次序為:
a>=0.0anda+c>b+dorNotTrue
②True①6.巳口6.0
③False
②False
__________)
Y
④False
J
----------Y------
⑤False
最-后結果為False。15
§4.3選擇結構
4.3.1If.…一Then......語句
1.行If語句格式如下:
Ifv條件表達式,Then卜語句組1>][Elsev語句組2>]
2.塊If結構格式如下:
Ifv條件表達式〉Then
[語句組1]
[Else
[語句組2]]
EndIf
2011-6-2816
3.說明:
(1)If語句后面的V條件表達式,可以是前面
講的算術表達式、關系表達式和布爾表達
式,執(zhí)行該結構時應先計算V條件表達式〉
值,然后根據V條件表達式>值確定程序的
流向。
(2)當v條件表達式〉的值為真,執(zhí)行Then
后面語句組1中各語句;當v條件表達式,
的值為假,則執(zhí)行Eke后面的語句組2中各
語句。無論是執(zhí)行語句組1或執(zhí)行語句組2
中各語句執(zhí)行完后,接著應執(zhí)行也djf。
2011-6-28IDZZl17
(3)在VB中數值表達式的值為非0時,則
條件表達式的值為真,數值表達式的值為0
時條件表達式的值為假。
(4)第一種形式的If結構,沒有配對的End
If語句;若Then后面的語句組1省略,則必
須有Else語句及其后的語句組2;若Else語
句省略,則語句組1是必選項。第二種If結
構必須有配對的結束語句EndIf,不能省
略。其Then后面的兩個可選項也必須選其
中之一。
2011-6-2818
【例4?1】計算分段函數:
Y=l+x(x口0)
LY=l+2*x(x<0)
工程設計步驟如下:
(1)啟動VB后選“新建工程”的“標準
EXE”出現一個窗體,在此窗體上添加一
個標簽控件一個文本框和二個命令按鈕如
下頁圖4?1左圖所不。
(2)設置窗體及各控件的屬性如下頁圖4-1
右圖所不。
2011-6-28IDI'Z19
圖4-1計算分段函數的界面設計及屬性設置
2011-6-2820
(3)編寫代碼如下:
編寫單擊“計算函數值”按鈕執(zhí)行的代碼。
PrivateSubCommandl_Click()
Rem使用輸入對話框提示輸入自變量的值
x=Val(InputBox(“自變量的值”,“請輸入”))
Ifx>=0Theny=1+xElsey=1+2*x
Textl.Text=y
EndSub
2011-6-2821
編寫單擊“退出”按鈕執(zhí)行的代碼。
PrivateSubCommand2_Click()
UnloadMe
EndSub
(4)運行結果。按工具欄上的執(zhí)行按
鈕出現如圖4?1右圖所示的界面。單
擊“計算函數的值”按鈕出現輸入對
話框如圖4?2左圖所示,輸入數值后,
出現最后的結果如圖4?2右圖所示。
2011-6-2822
分科的州的值
函數值Y=
圖4?2計算分段函數的運行結果
2011-6-2823
4.3.2嵌套的If語句
如果上面的塊If結構中的Then下面的語
句組1或者在Else下面的語句組2又包含另外
的If結構稱If語句的嵌套,如:
Ifv條件表達式1>Then
[Ifv條件表達式2>Then、
語句組1
當表達式1
Else的值為真時
語句組2執(zhí)行的語句
組。
EndIf]
2011-6-2824
4.3.2嵌套的If語句
Else
[Ifv條件表達式3>
Then
當表達式1
語句組3的值為假時
Else執(zhí)行的語句
語句組4
EndIf]
EndIf
2011-6-2825
塊IF嵌套的N?S結構化流程圖表示
條件表達式1
YN
條件表達式2條件表達式3
YNYN
語句組1語句組2語句組3語句組4
2011-6-2826
【例4?2】簡單密碼驗證程序。
工程設計步驟如下:
(1)在窗體上添加二個個標簽控件、一個
文本框控件和二個命
令按鈕。
如圖4-3所示。
(2)設置窗體與各控
件的屬性如表4?5所示。
圖4-3
2011-6-2827
表4?5簡單密碼驗證程序中窗休及各控件的屬性的設
置
對象屬性屬性值說明
FormlCaption簡單密碼驗證程標題
序
Label1Caption空用作輸出
AutosizeTrue自動調節(jié)尺寸以適應內
容
Backcolor白色設背景色為白色
BorderStyle1-FixedSingle有邊框,邊框為凹形的
BackStyle1-Opaque
一沏1628一28
表4-5簡單密碼驗證程序中窗休及各控件的屬性的設置(續(xù))
對象屬性屬性值說明
Label2Caption請輸入密碼:
AutosizeFalse不能自動調節(jié)尺寸
BorderStyle0-None沒有邊框
Command1Caption確定標題
Command2Caption退出標題
TextlText空用于用戶輸入密碼
Passwordchar*輸入密碼時顯示的字符
2011-6-2829
判斷密碼程序N-S結構化流程圖
2011-6-2830
在窗體的聲
明段中聲明
(3)代碼編寫如下的變量在窗
DimPassAsString體的各個模
塊都起作用
DimintDAsInteger
編寫單擊命令按鈕“確定”所執(zhí)行的代碼。
PrivateSubCommandl_Click()
IfTextl.Text=PassThen
intD=3
Labell.Caption="密碼正確,_
可以進入系統(tǒng)!”
Else
2011-6-2831
intD=intD-1
MsgBox”密碼錯誤!”
IfintD=0ThenEnd,行IF結構
Labell.Caption="仔細想想,還有“
&_
Str(intD)&"次!”
Textl.SetFocus
使文本框重
EndIf薪獲得焦點
EndSub
2011-6-2832
編寫單擊命令按鈕“退出”所執(zhí)行的代碼。
PrivateSubCommand2_Click()
End
EndSub
編寫窗體的Form_Load()事件所執(zhí)行的代碼。
PrivateSubForm_Load()
Pass=''Hello''
intD=3
EndSub
2011-6-2833
(4)按F5鍵運行工程,在文本框中輸入密
碼后,單擊“確定”按鈕。若密碼輸入正確,
則在框中顯示“密碼正確,可以進入系
統(tǒng)!”。
若密碼錯誤則信息
輸出框顯示密碼錯
誤,按“確定”按鈕
后出現提示允許再
輸入兩次。
結果如圖4-4和
圖4-5所示。
圖4-4密碼正確顯示結果
2011-6-2834
圖46密碼錯誤信息輸出框顯示密碼錯誤,
并且提示允許再輸入兩次
2011-6-2835
【例4?3】求平均值和最小數。
設計工程界面如圖4-6左圖所示。
界面上有三個文本框,三個標簽和四個命令
按鈕。
圖4-6求最小數和平均數工程界面的設置
2011-6-2836
該工程要求:
(1)在“輸入數據:”文本框的下面輸
入數據,按回車鍵或者單擊“確定”按
鈕,輸入的數據就顯示在“數據列表:”
下面的文本框中。如果輸入的不是數據,
則給出提示"請輸入數字J
(2)單擊“統(tǒng)計”按鈕在“輸出結果:”
下面的文本框輸出結果,顯示共有多少
數、最小值和生均值所示。如果沒有輸
入,則給出提示“無有效的輸入數據!no
(3)“數據列表:”和“輸出結果:”
下面的文本框中不允許用戶編輯。
2011-6-2837
表4-6求最小數和平均值工程窗體及控件屬性設置值
對象屬性屬性值說明
Textl(名稱)Textln程序引用名
Text
Text2(名稱)TextOut程序引用名
Text
LockedTrue用戶不能編輯此文本框
MultiLineTrue使文本框接收多行文本
ScrollBars2-Vertical有垂直滾動條
2011-6-:>838
表4-6求最小數和平均值工程窗體及控件屬性設置值(續(xù))
對象屬性屬性值說明
Text3(名稱)TextResult程序引用名
LockedTrue用戶不能編輯此文本框
MultiLineTrue
Text
Command1DefaultTrue表示按回車鍵即為確定
Command3CancelTrue表示按ESC即為退出
201T-6-2839
(3)編寫代碼如下:
DimnAsInteger,SumAsSingle」
MinAsSingle
編寫單擊“確定”所執(zhí)行的命令代碼
PrivateSubCommandl_Click()
IfNotIsNumeric(Textln.Text)Then
MsgBox”請輸入數字”
Textln.Text=""若文本框中輸入
的不是數字則在
Textln.SetFocus消息框中提示:
ExitSub請輸入數字
EndIf
2011-6-2840
若文本框是第
一次輸入數字
11=11+]/則把它顯示在
Ifn=1Then/輸出的文本框
中同時保存在
TextOut.Text=Textln.Text變量Min中,否
則輸出的文本
Min=Val(Textin)框顯示的內容
再加上新輸入
Else的內容。
TextOut.Text=TextOut.Text&
Chr(13)&Chr(10)&Textln.Text
2011-6-2841
IfVal(Textln)<MinThen
Min=Val(Textln)
EndIf\
EndIf若文本框
Sum=Sum+Val(Textln)中輸入的
數字小于
Textln.Text=變量Min
Textln.SetFocus的值,則把
新輸入的
EndSub值送入變
量Min中.
2011-6-2842
編寫單擊“統(tǒng)計”按鈕所執(zhí)行的代碼
PrivateSubCommand2_Click()
DimsiAsString,s2AsString」
s3AsString,hhAsString
<Ifn=0Then
MsgBox”無有效的輸入數據!”
ExitSub若n=0則表示沒有
〔EndIf輸入數字。在消
息框中提示:無
有效的輸入數據!
2011-6-2843
si="共計"&Str(n)&"個數”
s2="最小值:“&Str(Min)
s3="平均值:"&Str(Sum/n)
hh=Chr(13)&Chr(lO)
TextResult.Text=si&hh&s2&
hh&s3&hh
EndSub
2011-6-2844
編寫單擊“清除”按鈕所執(zhí)行的代碼
PrivateSubCommand4_Click()
TextResult.Text=
TextOut.Text=
n=0:Sum=0
Textln.SetFocus
EndSub
2011-6-2845
編寫Form_Activate發(fā)生時事件執(zhí)行的代碼
PrivateSubForm_Activate()
n=0:Sum=0
Textln.SetFocus
EndSub
編寫單擊“退出”按鈕所執(zhí)行的代碼
PrivateSubCommand3_Click()
End
EndSub
2011-6-2846
(4)運行結果。按F5鍵運行工程,
在出現的畫面中“輸入數據”下面
的文本框中輸入數據,每輸入1個數
據接著按“確定”按鈕,被輸入的
數據就在“數據列表”下面的文本
框中顯示出來,輸入完數據后單擊
“統(tǒng)計”按鈕,就在“輸出結果”
下面的文本框中顯示出結果如圖4?7
所示。
2011-6-2847
圖4?7求最小數和平均數工程運行結果
2011-6-2848
4.3.3Ilf函數
VB中還提供Hf函數用來實現一些比較簡
單的選擇結構。
Ilf函數的格式如下:
Ilf(v條件表達式〉,〈語句1>,v語句2>)
說明:
同上面提到的IF語句一樣,<條件表達
式,可為算術表達式、關系表達式和布爾表
達式。當條件表達式的值為真時,執(zhí)行語
句1;為假時,執(zhí)行語句2。當選擇結構中
無論v條件表達式〉的值為真還是假,都只
執(zhí)行一個語句時可使用IIF函數。
2011-6-2849
語句:
y=IIf(v條件表達式>,V語句1>,<語句2>)
相當于:
Ifv條件表達式>Thenv語句1>Elsev語句2>
例44中計算分段函數完全可以使用IIF函
數編寫。其中的If…Else結構可用如下代碼
替換即可,其運行結果完全相同。
y=IIf(x>=0,1+x,1+2*x)
2011-6-2850
4.3.4多分支的If選擇結構
1.多分支的If結構如下:
Ifv條件1>Then
[語句組1]
[Elselfv條件2>Then
[語句組2]]
???
[Elselfv條件n>Then
[語句組n]]
[Else
[語句組n+1]]
EndIf
2011-6-2851
2.多分支IF結構的N?S結構化流程圖
判斷條件
IFElseIf????????????ElseIfElse
條件1成立條件2成立條件n成立
執(zhí)行語執(zhí)行語執(zhí)行語執(zhí)行語
句組1句組2????????????句組n句組n+1
2011-6-2852
3.說明:
多分支的塊If結構由If語句開始,
EndIf語句結束,中間的Elself語句和
Else語句是可選項。
(1)執(zhí)行時,先判斷If語句后面的條件1,
如果條件1值為真,則執(zhí)行語句組1中的
各語句,執(zhí)行完后再執(zhí)行EndIf語句;
(2)若條件1的值為假,則判斷條件2,如
果條件2的值為真,則執(zhí)行語句組2中的
各語句,執(zhí)行完后再執(zhí)行EndIf語
2011句;...口53
(3)若條件n?l的值為假,則判斷條件n,
如果條件n的值為真,則執(zhí)行語句組n中
的各語句,執(zhí)行完后再執(zhí)行EndIf語句;
否地執(zhí)行Else后面語句組n+1中的各語句,
執(zhí)行完后再執(zhí)行EndIf語句。
(4)在多分支的塊If結構中根據需要可以
有多個Elself語句,但最多只能有一個
Eke語句,使用時一定要注意。
2011-6-2854
【例4?4】某商場對顧客購物實行打折銷售。規(guī)定
如下:
購物款v500元沒有折扣
500元v購物款01000元折扣5%
1000元v購物款01500元折扣8%
1500元v購物款02000元折扣10%
2000元v購物款02500元折扣15%
購物款>2500元折扣20%
設計工程,當輸入購物款時按“計算”按鈕
就可以輸出折扣后應交的實際購物款。
2011-6-2855
工程設計步驟如下:
(1)新建“標準EXE”工程,在出現的窗
體上添加兩個標簽、兩個文本框和兩個
命令按鈕,如函令8所示。
(2)設置窗體和控件的屬性如圖4?8所示。
2011-6-28圖4?8購物打折銷售計算應付款工程的界面設置56
(3)編寫代碼如下:
編寫單擊“計算”按鈕應執(zhí)行下列代碼。
PrivateSubCommandl_Click()
DimxAsSingle,yAsSingle
x=Val(Textl.Text)
Ifx<=500Then
y=x
Elselfx<=1000Then
y=(l-0.05)x
Elselfx<=1500Then
2011-6-2857
y=(l-0.08)x
Elselfx<=2000Then
y=(l-04)*x
Elselfx<=2500Then
y=(l-0.15)*x
Else
y=(l-0.2)*x
EndIf
Text2.Text=''實際交款:n&y&八元"
EndSub
2011-6-2858
編寫單擊“清除”按鈕執(zhí)行下列代碼。
PrivateSubCommand2click()
Text1.Text=
Textl.Text=
EndSub
(4)運行工程。按F5運行工程,出現運行
畫面后,在“請輸入購物款”的右邊的文
本框中輸入實際購物款,然后單擊“計算”
得到實際應付款數顯示在第二個文本框中
如圖4?9所示。
2011-6-2859
圖4?9計算“實際應付款數”工程運行結果
2011-6-2860
【例4?5】設計一個流動字幕,如圖4?10所示。
工程設計步驟如下:
(1)新建“標準EXE”工程,在出現的窗體上
添加一個命令按鈕、一個標簽和一個計時器
設計界面如圖4?10所示。
(2)設置窗體及控件的屬性如圖4?10所示。
其中計時器的Interval屬性設置為10,Enable
設為False。注意此時的命令按鈕“開始”上
有一個熱鍵S,是在給命令按鈕設置Caption
屬性時加上的只要在選中的字母前面加上一
個符號即可。
2011-6-2861
圖4?10設計一個流動字幕工程界面及屬性設置
2011-6-2862
PrivateSubCommandl_Click()
,IfCommandl.Caption="開始&S''Then
Commandl.Caption="暫停&S”
Timer1.Enabled=True
ElselfCommandl.Caption="暫停&SnThen
)Commandl.Caption="繼續(xù)&C''
'Timerl.Enabled=False
Else
Commandl.Caption="暫停&S''
ITimerl.Enabled=True
EndIf
EndSub
2011-6-2863
返回/設置對
PrivateSubTimerl_Timer()象的寬度。
IfLabell.Left+Labell.Width>0Then
Labell.MoveLabell.Left-50
Else
Labell.Left=Forml.ScaleWidth
EndIf
EndSub返回/設置對
象內部的水平
度量單位數。
2011-6-2864
(4)運行程序。單擊“開始”命令按
鈕,則字幕開始從右向左移動,直到
在左邊消失,然后接著又從右邊開始
向左邊移動。此時單擊“暫?!卑粹o,
則字幕停止移動。若想繼續(xù)移動字幕,
再單擊“繼續(xù)”按鈕。請注意該程序
中只有一個命令按鈕就可以控制各種
情況。如開始、暫停和繼續(xù)。
2011-6-2865
圖4-11流動字幕工程運行結果
2011-6-2866
【例4-6】求一元二次方程的根。
分析:一元二次方程的根,有以下幾種情況:
(1)當a#)時,設delta=b?-4ac。
當判別式delta>0時,方程有兩個不同的實根;
當判別式delta=0時,方程有兩個相同的實根;
當判別式deltav0時,方程有兩個共甄復根。
(2)當a=0,若b和時,則方程有一個根。
當a=0,若b=0時,則方程無意義。
2011-6-2867
工程設計步驟如下:
(1)新建“標準EXE”工程。在出現的窗體
上添加兩個框架、五個標簽、三個文本框
和兩個命令按鈕,其中框架1中包括三個文
本框和三個標簽,框架2中包括一個標簽,
如圖4-12所示。
(2)設置窗體及控件的屬性如圖4?12所示。
2011-6-2868
圖4-12求方程的根工程界面設計和屬性設置
2011-6-2869
(3)編寫代碼如下:
編寫單擊“計算方程根”命令按鈕所執(zhí)行
的代碼
PrivateSubCommandl_Click()
DimaAsSingle,bAsSingle,cAsSingle
DimsbAsSingle,xbAsSingle,rcAs
Single
a=Val(Textl.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
2011-6-2870
Ifa<>0Then
delta=bA2-4*a*c
rc=?b/(2*a)
Ifdelta>0Then
sb=Sqr(delta)/(2a)
Labell.Caption="方程有兩個實根"
pl="xl="&Str(rc+sb)
p2="x2="&Str(rc-sb)
Labell.Caption=pl&Chr(13)&p2
2011-6-2871
Elselfdelta=0Then
Label2.Caption="方程有兩個相等的實根”
Labell.Caption=nxl=x2n&Str(rc)
Else
xb=Sqr(-delta)/(2*a)
Label2.Caption="方程有兩個的虛根"
pl=nxl=M&Str(rc)&&IIf(xb=1,_
Str(xb))&""
p2="x2=''&Str(rc)&"&IIf(xb=1,_
Str(xb))&"i"
Labell.Caption=pl&Chr(13)&p2
EndIf
Else
M???1
cIfb<>0Then
y="b/c
Label2.Caption”方程僅有一個根”
}Labell.Caption"x=''&Str(y)
|Else
Labell.Caption="方程無意義!”
Labell.Caption_,,,,
'EndIf
EndIf
EndSub
2011-6-2873
編寫單擊“退出”命令按鈕所執(zhí)行的代碼
PrivateSubCommand2_Click()
End
EndSub
(4)運行程序。在出現的界面上。根據提
示,首先在三個文本框中輸入一元二次
方程的三個系數。然后單擊Commandl
命令按鈕”計算方程根”就可得到相應
方程的根如圖4-13所示。
2011-6-2874
圖4-13求一元二次方程根的工程運行結果
4.3.5fflSelectCase語句實現多分支選擇結構
2011-6-2875
VB中還提供SelectCase語句用來實現多分支結構
1.SelectCase語句的一般格式如下:
SelectCasev選擇表達式〉
[Casev表達式列表1>
[v語句組]
[Casev表達式列表2>
卜語句組2>]]
[Casev表達式列表n>
[v語句組n>]]
[CaseElse
[v語句組n+l>]]
76
多分支選擇結構流程圖
SelectCasev選擇表達式,
CaseCaseCase
????????????CaseElse
情況1情況2情況n
執(zhí)行語執(zhí)行語執(zhí)行語執(zhí)行語
句組1句組2????????????句組n句組n+1
EndSelect
2011-6-2877
2.說明:
(1)v選擇表達式〉為必選項,用來指出被選
擇的表達式或變量名??梢允侨魏螖抵岛妥?/p>
符串表達式。
(2)在Case子句中,v表達式列表,為必選參
數,用來測試是否有與選擇表達式匹配的表
達式或變量名,它必須是常量而且必須與選
擇表達式或變量的類型一致。
(3)在Case子句中,v表達式列表,可以是一
個或多個表達式的值,如表4?7所示。
2011-6-2878
表4-7Case表達式列表的形式
形式示例說明
表達式Case50*b數值和字符串表達式
表達式To表達式Case1To10用來指定1個數值范圍。
Case“a'To"m"
Is關系表達式CaseIs>200可以配合比較運算符來
CaseIs<=5,8,20指定1個數值范圍。這里
Is是關鍵字。
2011-6-2879
(4)當使用多個表達式列表時,表達式各
項之間應用逗號“,”隔開。
(5)〈語句組〉是一條或多條語句為可選參
數,當v表達式列表,中有值與〈選擇表達
式》相匹配時執(zhí)行。
(6)CaseElse語句用于指明其他語句序列,
當v選擇表達式〉與所有的Case子句中v表
達式列表》中的值都不匹配時,執(zhí)行Case
Else后面的語句,雖然不是必須的。但若
在SelectCase結構中加上CaseElse語句,
就可用來處理一些不可預見的〈選擇表達
式>的值。
2011-6-2880
下列Case子句的寫法是正確的:
Dimx
SelectCasex
Case1
Case“a”
Case2,3,8
Case1To5
Case1,6To9
Case1To3,6To8
CaseIs<12,Is>20
坳ESelect81
下列Case子句的寫法是不正確的,程
序運行時并不發(fā)生錯誤,但是運行結果并
不是所預料的,應避免此類寫法。
Dimx
SelectCasex
Casex=l
Casex="a”
Casex>12Andx<=20
EndSelect
2011-6-2882
【例4?7】例4?4題中計算打折銷售款的
程序也可用SelectCase結構編寫,具體
程序代碼如下所示。
編寫單擊Commandl命令按鈕“計算”
執(zhí)行的代碼。
PrivateSubCommandl_Click()
DimxAsSingle,yAsSingle
x=Val(Textl.Text)
2011-6-28
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)健康監(jiān)護信息化平臺建設與應用
- 職業(yè)健康政策與醫(yī)療資源投入的關系
- 職業(yè)健康大數據與智慧醫(yī)療
- 職業(yè)健康中的人機適配性評估
- 齊齊哈爾2025年黑龍江齊齊哈爾市龍江縣選調縣直學校教師筆試歷年參考題庫附帶答案詳解
- 職業(yè)健康與員工職業(yè)發(fā)展路徑的醫(yī)學價值重構
- 肇慶2025年第二次廣東肇慶四會市公安局招聘警務輔助人員50人筆試歷年參考題庫附帶答案詳解
- 珠海2025年廣東珠海市接待辦公室招聘合同制職員筆試歷年參考題庫附帶答案詳解
- 清遠2025年廣東清遠市華僑中學臨聘教師招聘8人筆試歷年參考題庫附帶答案詳解
- 河源2025年廣東河源紫金縣人民檢察院招聘編外人員筆試歷年參考題庫附帶答案詳解
- 中國大麻行業(yè)研究及十五五規(guī)劃分析報告
- 消毒產品生產企業(yè)質量保證體系文件
- 寒假前安全法律教育課件
- 干熱復合事件對北半球植被的影響及響應機制研究
- 2025年四川單招護理試題及答案
- 毛巾染色知識培訓課件
- 鋼梁現場安裝施工質量通病、原因分析及應對措施
- 醫(yī)院AI電子病歷內涵質控系統(tǒng)項目需求
- 新能源汽車拆裝課件
- 兒童肱骨髁上骨折術
- 腰椎常見病變課件
評論
0/150
提交評論