版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章選擇結(jié)構(gòu)設(shè)計(jì)
程序流程有三種最基本的控制結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在一個(gè)過程中,程序通常是按照由上而下的順序來執(zhí)行各個(gè)語句的,直到整個(gè)過程結(jié)束。引入選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),可以改變程序執(zhí)行的流程。本章主要內(nèi)容
選擇程序結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果來控制程序的流程
條件表達(dá)式
關(guān)系表達(dá)式/
邏輯表達(dá)式條件語句
If...Then/If...Then...Else
條件語句的嵌套多分支語句selectcase
選擇性控件
單選按鈕/
復(fù)選框列表框/組合框計(jì)時(shí)器控件程序舉例關(guān)系運(yùn)算符符號(hào):
<小于>大于>=大于或等于
<=小于或等于=等于<>不等于
適用的類型和結(jié)果類型:
關(guān)系運(yùn)算符適用于數(shù)值型、字符型、日期型和邏輯型數(shù)據(jù),結(jié)果只能為邏輯型(真值True和假值False)運(yùn)算符兩側(cè)必須是同類型的量或表達(dá)式若不是,系統(tǒng)會(huì)自動(dòng)進(jìn)行強(qiáng)制類型轉(zhuǎn)換“5”>40>(1>0)若判斷的結(jié)論是成立,則結(jié)果為邏輯真值(True),否則為邏輯假值(False)True的值等于-1,F(xiàn)alse的值等于0關(guān)系運(yùn)算符運(yùn)算符名稱示例說明<小于“3”<4值為:True,強(qiáng)制轉(zhuǎn)換為數(shù)值型<=小于或等于3<=4值為:True>大于0>(1>0)值為:True,強(qiáng)制轉(zhuǎn)換為數(shù)值型>=大于或等于“aa”>=“ab”值為:False=等于1=True值為:False,強(qiáng)制轉(zhuǎn)換為數(shù)值型<>不等于1<>1值為:False關(guān)系表達(dá)式運(yùn)算次序:先分別求出運(yùn)算符兩側(cè)表達(dá)式的值,然后再將二者進(jìn)行比較其中:數(shù)值型數(shù)據(jù)按照數(shù)值大小比較
2+3>63>=05<>2^3
字符型數(shù)據(jù)按照字符的ASCII碼值大小比較
“1”>“2”“a”<“b”“A”>“a”
日期型數(shù)據(jù)按照前后順序比較
#01/01/2003#>#12/31/2002#
關(guān)系表達(dá)式的格式:<表達(dá)式1><關(guān)系運(yùn)算符><表達(dá)式2>[<關(guān)系運(yùn)算符><表達(dá)式3>…]關(guān)系表達(dá)式練習(xí)數(shù)值型數(shù)據(jù)按照數(shù)值大小比較字符型數(shù)據(jù)按照字符的ASCII碼值大小比較日期型數(shù)據(jù)按照前后順序比較①?2/3>3/4②?“a”>“b”③?3<=5④?True=-1⑤?#01/12/91#<=#02/01/91#?“abc”<=“abb”?“ab”<=“我們”?“123”>“99”?“你們”>“我們”①False②False③True④True⑤True⑥False⑦True⑧False⑨False金手指考試網(wǎng)/2016年金手指駕駛員考試科目一科目四
元貝駕考網(wǎng)
科目一科目四仿真考試題C1Grammar布爾運(yùn)算符符號(hào):
NOT
(邏輯非)
AND
(邏輯與)即:并且,要同時(shí)成立
OR
(邏輯或)即:或者,只要有一個(gè)成立適用的類型和結(jié)果類型:
只適用于邏輯型數(shù)據(jù),運(yùn)算結(jié)果是邏輯值規(guī)則:非運(yùn)算的規(guī)則是:直接求反即可與運(yùn)算的規(guī)則是:只有二者全為真時(shí)結(jié)果為真,否則為假或運(yùn)算的規(guī)則是:只有二者全為假時(shí)結(jié)果為假,否則為真邏輯值A(chǔ)邏輯值BNOTAAANDBAORBTTFTTTFFFTFTTFTFFTFF布爾表達(dá)式練習(xí)?“a”>“b”AND1>2False?“a”>“b”O(jiān)R1<2
True?NOT2*5<>11
False?2^3>3AND5>10
False表示一個(gè)數(shù)是偶數(shù)
xMod2=0或int(x/2)=x/2表示一個(gè)數(shù)X能被3或5或7整除
xMod3=0ORxMod5=0ORxMod7=0表示身高不在1.65米以上或不是女生
身高<1.65
OR性別<>“女”
NOT(身高>=1.65
AND性別=“女”)布爾表達(dá)式練習(xí)?-3<-2<-1Falsea=3:b=4:c=5?a=b=c
False表示一個(gè)數(shù)x是能被3整除的奇數(shù)
xMod3=0andxMod2<>0xMod2=1andxMod2<>0表示一個(gè)數(shù)x∈[2,5]
x>=2andx<=5表示一個(gè)數(shù)x不在[2,5]區(qū)間內(nèi)
x<2orx>5運(yùn)算符的優(yōu)先順序算術(shù)運(yùn)算符字符串運(yùn)算符:&關(guān)系運(yùn)算符:=、<>、<、>、<=、>=布爾運(yùn)算符:NotAndOr優(yōu)先級(jí)依次降低運(yùn)算符的優(yōu)先順序練習(xí)設(shè)變量x=4,y=-1,a=7.5,b=-6.2,求表達(dá)式
x+y>a+bAndNoty<b的值
Truey表示年號(hào),用一個(gè)表達(dá)式表示該年是否是閏年
(yMod4=0ANDyMod100<>0)OR(yMod400=0ANDyMod100=0)(yMod4=0ANDyMod100<>0)ORyMod400=0判斷閏年的科學(xué)依據(jù)地球公轉(zhuǎn)一周的時(shí)間為:365天5小時(shí)48分56秒每經(jīng)過4年,剩余的時(shí)間為:5小時(shí)48分56秒×4=23小時(shí)15分44秒則每4年都要多加24小時(shí)-23小時(shí)15分44秒=44分16秒每經(jīng)過100年,就會(huì)多加44分16秒×25=18小時(shí)26分40秒比較接近一天,所以每到100年,就將這多加的近似一天的時(shí)間減去,即停止追加一天而實(shí)際上又少加了24小時(shí)-18小時(shí)26分40秒=5小時(shí)33分20秒每經(jīng)過400年,就會(huì)少加4×5小時(shí)33分20秒≈24小時(shí)所以每過400年,就應(yīng)該再補(bǔ)加一天故:每4年閏年出現(xiàn)一次;每400年,閏年再出現(xiàn)一次其它的整100年,閏年停止出現(xiàn)一次選擇控制結(jié)構(gòu)選擇控制結(jié)構(gòu)又稱分支結(jié)構(gòu)它體現(xiàn)了程序運(yùn)行過程中的自我判斷能力程序可以根據(jù)當(dāng)前執(zhí)行的某個(gè)條件,進(jìn)行比較、判斷,并依據(jù)判斷的結(jié)果(成立與否)來決定下一步做什么,不做什么(在兩條或多條程序路徑中選擇一條來執(zhí)行,即只執(zhí)行程序中的一部分語句)可見,在此結(jié)構(gòu)的程序運(yùn)行過程中,有些語句會(huì)執(zhí)行一次,有些語句在此次程序運(yùn)行過程中沒有機(jī)會(huì)執(zhí)行。即:“無論分支多寡,必選其一;縱然分支眾多,僅選其一”VB中的選擇語句有:雙分支語句多分支語句(SelectCase)單行(IF-THEN-ELSE)塊結(jié)構(gòu)(IF-THEN-ELSE-ENDIF)選擇結(jié)構(gòu)(IF-THEN)語句格式:IF<條件>
THEN<語句序列>條件N語句序列下一語句Y執(zhí)行過程:判斷給定的條件如果成立(其值為True),執(zhí)行所給語句序列,然后執(zhí)行下一條語句否則(其值為False),跳過所給語句序列,直接執(zhí)行下一條語句示例:輸入一個(gè)數(shù),如果是正數(shù),就輸出x=Val(Text1.text)Ifx>0ThenLabel1.Caption=x問題:如果不是正數(shù),應(yīng)該顯示“不是正數(shù)”語句格式:IF<條件>THEN[<語句序列1>][ELSE<語句序列2>]執(zhí)行過程:判斷給定的條件如果成立(其值為True),執(zhí)行所給語句序列1,然后執(zhí)行下一條語句否則(其值為False),執(zhí)行所給語句序列2,然后執(zhí)行下一條語句選擇結(jié)構(gòu)(IF-THEN-ELSE)條件命令序列1命令序列2下一語句NY(IF-THEN-ELSE)舉例例二:根據(jù)用戶輸入的一個(gè)成績(jī),判斷是否及格DimxAsSingleX=Val(InputBox("請(qǐng)輸入一個(gè)成績(jī):","輸入",0))IF
X>=60
THENLabel1.Caption=“及格”
ElseLabel1.Caption=“不及格”使用IIF函數(shù),也可以實(shí)現(xiàn)相應(yīng)的判斷格式:IIF(條件,條件為真時(shí)的值,條件為假時(shí)的值)
例一:輸入一個(gè)數(shù),如果是正數(shù),就輸出;否則顯示非正數(shù)DimxAsSinglex=Val(Text1.text)If
x>0
Then
Label1.Caption=x
Else
Label1.Caption=“非正數(shù)"IIF函數(shù)的使用DimxAsSinglex=Val(Text1.text)If
x>0
Then
Label1.Caption=x
Else
Label1.Caption=“非正數(shù)”Label1.Caption=IIf(x>0,x,“非正數(shù)”)DimxAsSingleX=Val(InputBox("請(qǐng)輸入一個(gè)成績(jī):","輸入",0))IF
X>=60
THEN
Label1.Caption=“及格”
Else
Label1.Caption=“不及格”Label1.Caption=IIf(x>=60,“及格”,“不及格”)語句格式:IF<條件>THEN
[<語句列1>][ELSE<語句列2>]ENDIF執(zhí)行過程:判斷給定的條件如果成立(其值為True),執(zhí)行所給y語句序列1,然后執(zhí)行下一條語句否則(其值為False),執(zhí)行所給語句序列2,然后執(zhí)行下一條語句塊結(jié)構(gòu)(IF-THEN-ELSE-ENDIF)條件命令序列1命令序列2下一語句NY(IF-THEN-ELSE-ENDIF)舉例示例:根據(jù)用戶輸入的一個(gè)成績(jī),判斷是否及格DimxAsSinglex=Val(InputBox("請(qǐng)輸入一個(gè)成績(jī):","輸入",0))Ifx>=60ThenLabel1.Caption="及格"ElseLabel1.Caption="不及格"EndIf(IF-THEN-ELSE-ENDIF)舉例示例:輸入ABC的值,判斷能否構(gòu)成三角形,如果能,計(jì)算三角形的面積DimaAsSingle,bAsSingle,cAsSinglea=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)s=(a+b+c)/2Ifa+b>cAndc>0Anda+c>bAndb>0Andb+c>aAnda>0Thenarea=Sqr(s*(s-a)*(s-b)*(s-c))Label1.Caption="能構(gòu)成三角形,"&"三角形面積為:"&Str(area)ElseLabel1.Caption="不能構(gòu)成三角形"EndIf語句格式:IF<條件1>THEN
[<語句列1>]ELSE
IF<條件2>THEN
[<語句列2>]ELSE[<語句列3>]ENDIFENDIF說明:如果在If語句的語句列1或語句列2中又有一個(gè)完整的If語句,則稱為If語句的嵌套IF語句的嵌套條件1語句列1語句列2下一語句NY條件2YN語句列3嵌套IF舉例用戶輸入一個(gè)數(shù),如果是正數(shù),打印是個(gè)正數(shù);如果是0,打印是個(gè)零;如果是負(fù)數(shù),打印是負(fù)數(shù)X>0是個(gè)正數(shù)是零下一語句X=0YN是個(gè)負(fù)數(shù)YNDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正數(shù)"Else
If
x=0
ThenLabel1.Caption=“零”
ElseLabel1.Caption="負(fù)數(shù)"
EndIfEndIf嵌套IF舉例用戶輸入一元二次方程的系數(shù),用戶判斷解的情況△>0有兩個(gè)不相同的實(shí)根有兩個(gè)相同的實(shí)根下一語句△=0YN沒有實(shí)數(shù)解YNa=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=b^2-4*a*cIf
d>0
ThenLabel1.Caption=“不同實(shí)根"Else
If
d=0
Then
Label1.Caption=“相同實(shí)根
"Else
Label1.Caption="沒有實(shí)數(shù)解"
EndIfEndIf嵌套IF舉例用戶輸入一個(gè)成績(jī),若在90到100之間,打印優(yōu)秀;若在80到89之間,打印良好;若在70到79之間,打印一般;若在60到69之間,打印及格;若在60以下,打印不及格;其它情況,打印輸入有誤DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="輸入有誤!"ElseIfx>=90ThenLabel1.Caption="優(yōu)秀!"ElseIfx>=80ThenLabel1.Caption="良好!"ElseIfx>=70ThenLabel1.Caption="一般!"ElseIfx>=60ThenLabel1.Caption="及格!"ElseIfx>=0ThenLabel1.Caption="不及格!"ElseLabel1.Caption="輸入有誤!"EndIfEndIfEndIfEndIfEndIfEndIf語句格式:IF<條件1>THEN
[<語句列1>]ELSEIF<條件2>THEN<語句列2>]……[ELSE[其他語句列]]ENDIF說明:IF語句的嵌套格式ELSEIF條件1條件n語句列1語句列n其他語句列下一語句…YYNN嵌套ELSEIF舉例用戶輸入一個(gè)數(shù),如果是正數(shù),打印是個(gè)正數(shù);如果是0,打印是個(gè)零;如果是負(fù)數(shù),打印是負(fù)數(shù)DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正數(shù)"ElseIf
x=0ThenLabel1.Caption="零"ElseLabel1.Caption="負(fù)數(shù)"EndIfDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正數(shù)"ElseIf
x=0ThenLabel1.Caption="零"ElseLabel1.Caption="負(fù)數(shù)"EndIfEndIf嵌套ELSEIF舉例DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="輸入有誤!"ElseIfx>=90ThenLabel1.Caption="優(yōu)秀!"
ElseIfx>=80ThenLabel1.Caption="良好!"ElseIf
x>=70ThenLabel1.Caption="一般!"ElseIf
x>=60ThenLabel1.Caption="及格!"ElseIf
x>=0ThenLabel1.Caption="不及格!"
ElseLabel1.Caption="輸入有誤!"EndIf用戶輸入一個(gè)成績(jī),若在90到100之間,打印優(yōu)秀;若在80到89之間,打印良好;若在70到79之間,打印一般;若在60到69之間,打印及格;若在60以下,打印不及格;其它情況,打印輸入有誤多分支語句
當(dāng)判斷條件較多時(shí),如果采用IF語句來設(shè)計(jì)程序,會(huì)出現(xiàn)各方面的麻煩;而多分支語句可以利用格式中的多個(gè)條件來判斷與執(zhí)行,效率較高語句格式:SELECTCASE<測(cè)試條件>[CASE<表達(dá)式1>
[<語句列1>]][CASE<表達(dá)式2>
[<語句列2>]]
…[CASEElSE[<其他語句列>]]ENDSELECT說明:
P83條件1條件n語句列1語句列n其他語句列下一語句…YYNN多分支語句舉例用戶輸入一個(gè)數(shù),如果是正數(shù),打印是個(gè)正數(shù);如果是0,打印是個(gè)零;如果是負(fù)數(shù),打印是負(fù)數(shù)DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正數(shù)"ElseIf
x=0ThenLabel1.Caption="零"ElseLabel1.Caption="負(fù)數(shù)"EndIfEndIfDimxAsSinglex=Val(Text1.Text)SelectCasexCaseIs>0Label1.Caption="正數(shù)"CaseIs=0’Case0Label1.Caption="零"CaseIs<0Label1.Caption="負(fù)數(shù)"EndSelect多分支語句舉例用戶輸入一個(gè)成績(jī),若在90到100之間,打印優(yōu)秀;若在80到89之間,打印良好;若在70到79之間,打印一般;若在60到69之間,打印及格;若在60以下,打印不及格;其它情況,打印輸入有誤SelectCasex
CaseIs<0Label1.Caption="輸入有誤"
CaseIs>100Label1.Caption="輸入有誤"CaseIs>=90Label1.Caption="優(yōu)秀"
CaseIs>=80Label1.Caption="良好"
CaseIs>=70Label1.Caption="一般"CaseIs>=60Label1.Caption="及格"
CaseElseLabel1.Caption="不及格"EndSelect多分支語句舉例用戶輸入一個(gè)年份和月份,由程序輸入該年該月有多少天!DimdAsIntegery=Val(Text1.Text):m=Val(Text2.Text)SelectCasemCase1,3,5,7,8,10,12d=31Case4,6,9,11d=30Case2IfyMod4=0AndyMod100<>0OryMod400=0Thend=29
Elsed=28
EndIfEndSelectP=Str(y)&"年"&Str(m)&"月有"&Str(d)&"天!"Label1.Caption=p滾動(dòng)條有些控件不能自動(dòng)支持滾動(dòng)的功能,VB提供的滾動(dòng)條有水平滾動(dòng)條(HScrollBar)和垂直滾動(dòng)條(VScrollBar)兩種常用屬性有(均為整型數(shù)):Value滾動(dòng)條的當(dāng)前值,即滑塊的位置LargeChange單擊滾動(dòng)條的前后部位時(shí),Value的改變量SmallChange單擊滾動(dòng)條的兩端箭頭時(shí),Value的改變量MaxValue的最大值MinValue的最小值常用事件:Scroll當(dāng)拖動(dòng)滾動(dòng)條滑塊時(shí)觸發(fā)的事件Change當(dāng)滾動(dòng)條滑塊位置改變時(shí)觸發(fā)的事件滾動(dòng)條程序示例PrivateSubHScroll1_Scroll()Text1.FontSize=HScroll1.ValueEndSub若改為滾動(dòng)條的Change事件,效果會(huì)有什么變化?使用計(jì)時(shí)器控件計(jì)時(shí)器(Timer)控件可以在程序運(yùn)行中以規(guī)定的時(shí)間間隔產(chǎn)生一個(gè)事件。這對(duì)不需要與用戶交互的代碼的執(zhí)行非常有用。計(jì)時(shí)器在設(shè)計(jì)時(shí)顯示為一個(gè)小時(shí)鐘圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025戶外品牌探路者線上新媒體運(yùn)營方案
- 田徑運(yùn)動(dòng)會(huì)活動(dòng)方案(匯編15篇)
- 五年級(jí)二十年后的家鄉(xiāng)單元作文
- 安全工作演講稿匯編15篇
- 2023年幼兒園安全工作計(jì)劃10篇
- 財(cái)務(wù)會(huì)計(jì)個(gè)人辭職報(bào)告集合8篇
- 一次有趣的游戲初一日記400字5篇
- 北京市通州區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末考試道德與法治試卷(含答案)
- 2025年工程瑞雷波儀項(xiàng)目合作計(jì)劃書
- 國培計(jì)劃心得體會(huì)
- 統(tǒng)編版(2024新版)七年級(jí)上冊(cè)道德與法治期末綜合測(cè)試卷(含答案)
- 文化創(chuàng)意合作戰(zhàn)略協(xié)議
- (T8聯(lián)考)2025屆高三部分重點(diǎn)中學(xué)12月第一次聯(lián)考評(píng)物理試卷(含答案詳解)
- 中國慢性冠脈綜合征患者診斷及管理指南2024版解讀
- 駕駛艙資源管理緒論課件
- 聲藝 EPM8操作手冊(cè)
- 西北農(nóng)林科技大學(xué)專業(yè)學(xué)位研究生課程案例庫建設(shè)項(xiàng)目申請(qǐng)書(MBA)
- 外墻保溫、真石漆施工技術(shù)交底
- 尾礦庫在線監(jiān)測(cè)方案)
- 房屋安全簡(jiǎn)易鑒定表.docx
- 警察公安工作匯報(bào)ppt模板ppt通用模板課件
評(píng)論
0/150
提交評(píng)論