Visual Basic控制结构(1).ppt

上传人:laozhun 文档编号:2740337 上传时间:2023-02-24 格式:PPT 页数:54 大小:678.50KB
返回 下载 相关 举报
Visual Basic控制结构(1).ppt_第1页
第1页 / 共54页
Visual Basic控制结构(1).ppt_第2页
第2页 / 共54页
Visual Basic控制结构(1).ppt_第3页
第3页 / 共54页
Visual Basic控制结构(1).ppt_第4页
第4页 / 共54页
Visual Basic控制结构(1).ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《Visual Basic控制结构(1).ppt》由会员分享,可在线阅读,更多相关《Visual Basic控制结构(1).ppt(54页珍藏版)》请在三一办公上搜索。

1、Visual Basic控制结构,VB结构化程序设计的三种基本结构:顺序结构 选择结构 循环结构,顺序结构 各语句按出现的先后次序执行,一般程序设计语言中顺序结构的语句主要:赋值语句和 输入/输出语句等。在VB中 赋值语句 输入/输出通过:文本框控件、标签控件、InputBox函数、MsgBox函数和过程 Print方法等来实现。,一、赋值语句 形式:变量名表达式 对象名.属性名=表达式 功能:将等号右边表达式的值赋给等号左边变量或 对象属性。例:n=n+1 计数累加 Text1.Text 清除文本框的内容 Text1.Text 欢迎使用VB 文本框显示字符串 y=3*x2+4*x+5,“=”

2、符号有两个意义 赋值号、关系运算符等号 例:赋值语句a=b与b=a是两个结果不同的赋值语句 而在关系表达式中a=b与b=a是等价的 赋值号左边只能是变量,不能是常量、常数符号、表达式。例:下面均为错误的赋值语句:Now()=x+y 左边是表达式(函数)5=sqr(s)+x+y 左边是常量 X+y=z 左边是表达式,赋值语句注意点,形式相同,系统会根据所处的位置判断符号的意义。,a=2b=3a=b或b=aPrint a,a=2b=3Print a=b,数据输出和输入,1、InputBox函数 功能:打开一个对话框,等待用户输入,返回字符串类型的输入值。格式:InputBox(提示,标题,默认值,

3、x坐标位置,y坐标位置)各参数说明:,注意:提示项不能省略。若要多行提示,必须在每行行末加 回车Chr(13)和换行Chr(10)控制符或vbCrLf符号常数 例:”请输入你的姓名”+vbCrLf+”然后单击确定”或”请输入你的姓名”+Chr(13)+”然后单击确定”或”请输入你的姓名”+Chr(10)+”然后单击确定”,例1:利用InputBox输入基本工资,并在窗体中 显示基本工资。x=InputBox(请输入基本工资,基本工资)Print x例2:利用InputBox输入基本工资和奖金,并在 窗体中显示工资总额。x=Val(InputBox(请输入基本工资,基本工资)y=Val(Inpu

4、tBox(请输入奖金,奖金)Print x+y,例3:利用InputBox输入基本工资和营业额,按营业额 的5%提成,计算实发工资并在窗体上显示。,Private Sub Form_Click()Dim sfgz!,jbgz!,x!jbgz=Val(InputBox(“输入基本工资“,”计算工资,300)x=Val(InputBox(“输入本月营业额)sfgz=jbgz+x*0.05 Print“本月工资营业额为:”;x;“基本工资为:;jbgz Print“本月实发工资为:;sfgzEnd Sub,2、MsgBox函数和MsgBox过程 功能:打开一个信息框,等待用户选择一个按钮。MsgBo

5、x函数形式:变量%=MsgBox(提示,按钮,标题)MsgBox过程形式:MsgBox 提示,按钮,标题 说明:“提示”和“标题”的含义与InputBox中的相同。按钮:决定消息框按钮数目、含义及出现在消息框 上的图表类型,MsgBox按钮设置,MsgBox所选按钮返回值,例1:制作一个“出现系统故障”的消息框,看效果 bb=MsgBox(出现系统故障,5+48,警告)Print bb例2:制作一个“密码错误的提示框”,看效果 ss=msgbox(密码错误,是否重新输入,3+32,错误提示)print ss,例3:制作一个密码登录程序,如果密码为123456,则显示密码正确提示,否则显示密码错

6、误提示。xx=InputBox(请输入密码,密码输入)If xx=123456 Then yy=MsgBox(密码正确,允许进入本系统,4+64,密码正确提示)Else yy=MsgBox(密码错误,无权进入本系统,4+64,密码错误提示)End If,3、Print方法,格式:对象.PrintSpc(n)|Tab(n)输出列表;|,说明:在对象上输出信息。对象:窗体、图形框或打印机。缺省为窗体。Spc(n)函数:从当前位置起空n个空格Tab(n)函数:从最左端开始计算的第n列分号:定位在上一个被显示的字符之后逗号:定位在下一个打印区开始处(每区14列)Print语句尾无分号或逗号,输出后换行

7、,例1:Print*Print*;%Print*,%Print*Print*;Spc(3);*Print*;Tab(5);&,例2:Print方法输出图形 Print 空一行 For i=1 To 5 显示有规律的5行 Print Tab(i);String(6-i,);Spc(6);String(i,)Next i,利用String函数显示重复字符利用循环结构、Spc、Tab函数显示有规律图形,4、Format格式输出函数,形式:Format(表达式,格式字符串)常用数值格式化符及举例,例:利用Format函数显示数值。s=12.2345 b=12 Print a=;Format(s,0.0

8、0);b=;Format(b,0.00)Print a=&Format(s,#.#)&b=&Format(b,#.#),选择结构,计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题。VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。,二路分支选择结构,多分支选择结构,一、If条件语句,1.IfThen语句(单分支结构)If Then 语句块 End If或 If Then 功能:当表达式的值为True,执行Then后面的语句块,否则不做任何操作。表达式:关系表达式、逻辑表达式,

9、算术表达式。表达式值按非零为True,零为False进行判断。,可以是一句或多句语句,只能有一条语句或语句间用冒号分隔,而且必须在一行上书写,例1:设置一个密码验证程序,如果密码是123,则提示“密码正确”,aa=inputbox(“请输入密码”)if aa=“123”then print“密码正确”end if,例2:已知两个数x和y,比较它们的大小,使得x 大于y。If xy Then t=x x=y y=t End If 或 If xy Then t=x:x=y:y=t 注意:简单If形式无End If时,只能是一句语句或语句 间用冒号分隔,而且必须在一行上书写。,2.IfThenEls

10、e语句(双分支结构)If 表达式 Then 语句块1 Else 语句块2 End If或 If 表达式 Then 语句1 Else 语句2 功能:当表达式的值为True时,执行Then后面的语句块1,否则执行Else后面的语句块2,例1:利用InputBox提示用户输入一个整数,如果 这个数大于零,显示此数是正数,否则显示 此数是负数或零。,aa=Val(InputBox(“请输入一个整数“,”判断)If aa 0 Then print“此数是正数”bb=MsgBox(“此数是正数”,0+64,“答案)Else print“此数是负数或零”bb=MsgBox(“此数是负数或零”,0+64,“答

11、案)End If,例2:计算分段函数,单分支 y=cos(x)x3+3*x 结构实现 If x0 Then y=sin(x)+sqrt(x*x+1),If x0 Then 双分支 y=sin(x)+sqr(x*x+1)Else结构实现 y=cos(x)x3+3*x End If,3.IfThenElseIf 语句(多分支结构)If 表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 Else 语句块 n+1 End If,作用:根据不同的表达式值确定执行哪个语句块,VB测试 条件的顺序为表达式1、表达式2一旦遇到表达 式为非零(True),则执行该条件下的语句块,然后 执

12、行End If后的语句。,例1:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。Dim ch As String*1 ch=InputBox(“请输入一个字符:”)If UCase(ch)=A And UCase(ch)=0“And ch=9 Then 数字字符 MsgBox(ch+是数字字符)Else 除上述字符以外的字符 MsgBox(ch+是其他字符)End If,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。ElseIf不能写成 Else If,例2:已知某课程的百分制成绩mark

13、,要求转换成对应五级制的评定 grade,评定条件如下:优,mark=90 良,80=mark90 等级=中,70=mark80 及格,60=mark70 不及格,mark60,方法一If mark=90 then grade=“优”Elseif mark=80 then grade=“良”Elseif mark=70 then grade=“中”Elseif mark=60 then grade=“及格”Else grade=“不及格”End if,方法二If mark=90 then grade=“优”Elseif 80=mark and mark90 then grade=“良”Else

14、if 70=mark and mark80 then grade=“中”Elseif 60=mark and mark70 then grade=“及格”Else grade=“不及格”End if,方法三If mark=60 then grade=“及格”Elseif mark=70 then grade=“中”Elseif mark=80 then grade=“良”Elseif mark=90 then grade=“优”Else grade=“不及格”End if,注:方法一、方法二正确,而方法三语法没错,但不能按要求获得结果。,If语句的嵌套是指If或Else后面的语句块中又包含If

15、语句 If 表达式1 Then If 表达式2 Then End If End If,4.If语句的嵌套,If xy Then t=x:x=y:y=t If yz Then t=y:y=z:z=t If xy Then t=x:x=y:y=t End IfEnd If,例:已知x,y,z三个数,使得xyz 用一个IF语句和一个嵌套的IF语 句实现,例:判断今天是否放假 day1=cdate(inputbox(“请输入放假日期:”,”判断放假”)day2=date if day1=day2 then print 祝贺你,今天放假!:end if,else print”今天不放假!请等待!”,if

16、 day1day2 then n=day1-day2 print 还差“;n;天放假else n=day2-day1 print 已经过了“;n;天End if,二、Select Case语句,Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n+1End Select,功能说明:根据的取值与各 case子句中的值 的比较结果决定执行哪一组语句块。如果有多个case短语中的值与测试值匹配,则根据 自上而下判断原则,只执行第一个与之匹配语句块 如果没有相匹配的就执行case else之后的语句 Select Cas

17、e 后不能出现多个变量 Case后不能出现变量及有关运算符,变量或表达式可以是数值型或字符串表达式列表与变量或表达式的类型必须相同,是下面4种形式之一:表达式 例:A一组用逗号分隔的枚举值 2,4,6,8 表达式1 To 表达式2(包含表达式1和表达式2的值)60 To 100Is 关系运算符表达式 Is 60,例1:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。,Dim ch As String*1 ch=InputBox(“请输入一个字符:”)If UCase(ch)=A And UCase(ch)=0“And ch=9 Then 数字字符 MsgBox(ch+

18、是数字字符)Else 除上述字符以外的字符 MsgBox(ch+是其他字符)End If,改为用select case语句来做,Dim ch As String*1 ch=InputBox(“请输入一个字符:”)Select case ch case“a”to“z”,”A”to“Z”MsgBox(ch+“是字母字符”)case“0“to“9”MsgBox(ch+是数字字符)case else MsgBox(ch+是其他字符)End select,多分支结构,用Select Case 语句比IfThenElseIf语句 直观,程序可读性强。但不是所有的多分支结构均可 用Select Case语句

19、代替 IfThenElseIf语句。,例2:判断今天是否放假day1=cdate(InputBox(请输入放假日期:,判断放假)day2=DateSelect Case True Case day1=day2 Print 祝贺你,今天放假!:Case day1 day2 n=day1-day2 Print 还差“;n;天放假 Case Else n=day2-day1 Print 已经过了“;n;天End Select,判断今天是否放假day1=cdate(InputBox(请输入放假日期:,判断放假)day2=Date If day1=day2 Then Print 祝贺你,今天放假!:El

20、se If day1 day2 Then n=CDate(day1)-day2 Print 还差;n;天放假;Else n=day2-CDate(day1)Print 已经过了“;n;天;End If End If,思考题:任输入成绩,判断优良中及格及不及格,例3:判断坐标点(x,y),落在哪个象限。,代码一If x 0 And y 0 Then MsgBox(在第一象限)ElseIf x 0 Then MsgBox(在第二象限)ElseIf x 0 And y 0 Then MsgBox(在第四象限)End If,代码二Select Case x,y Case x 0 And y 0 Msg

21、Box(“在第一象限”)Case x 0 MsgBox(“在第二象限”)Case x 0 And y 0 MsgBox(“在第四象限”)End Select,代码二错误:1.Select Case 后不能出现多个变量2.Case后不能出现变量及有关运算符,三、条件函数,(1)IIf函数 格式:IIf(表达式1,表达式2,表达式3)功能:如果表达式1为true时,返回表达式2,否则返回表达式3 IIf函数是If Then Else 结构的简洁表示 例:将x,y中大的数,放入Tmax变量中:Tmax=IIf(x y,x,y)该语句与如下语句等价:If x y Then Tmax=x Else Tm

22、ax=y,(2)Choose函数 Choose(整数表达式,选项列表)功能:如果整数表达式的值是1,则choose会返回列表中的第一个选项。如果整数表达式的值是2,则返回列表中的第2个选项 如果整数表达式的值小于1或大于所列出选项数目时,返回null。例1:根据Nop的值,得到+、-、中的某运算符:Op=Choose(Nop,+,-,)例2:根据当前日期,显示今日是星期几。t=Choose(Weekday(Now),“星期日”,“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”)MsgBox(今天是:&Now&t),For 循环语句 循环次数预先确定好,计数型循环语句DoL

23、oop 循环语句循环次数预先不确定。,循环结构,当满足一定条件是反复执行某项操作,一、For循环语句,For循环语句用于控制循环次数预知的循环结构。For 循环变量 初值 To 终值 Step 步长 循环体 Exit For Next 循环变量 循环变量必须为数值型。循环次数,注:步长默认值为1,循环流程:(1)循环变量被赋初值,它仅被赋值一次。(2)判断循环变量是否在终值内,如果是,执行循环体;如果否,结束循环,执行Next的下一语句。(3)循环变量加步长,转(2),继续循环,例1:显示“*”Dim i%for i=1 to 6 step 1 print“*”next i,思考1:步长为2的

24、结果 思考2:加如下语句的结果 if i4 then exit for end if,例2:计算1+2+3+100,?求1和100之间所有奇数和和偶数和,Dim i%,s%s=0,For i=to step 1,s=s+i,Next i,Print 1+2+100=“;s,1,100,例3:计算10!,Dim p%,k%p=1,for k=to,p=p*k,Next k,Print 10!=“;p,1,10,例4:找出100999之间的所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数 字的立方和等于该数本身(如153=13+53+33),a=fix(i/100),fix(153-10

25、0*1)/10)=5,思路:,fix(153/100)=1,B=fix(i-100*a)/10),153-fix(153/10)*10=3,c=i-fix(i/10)*10,Next i,For i=to,a=fix(i/100)b=fix(i-100*a)/10)c=i-fix(i/10)*10,if,i=a3+b3+c3 then,Print i 或用msgbox(i),End if,100,999,Dim i%,a%,b%,c%,例5:Print方法输出图形 Print 空一行 For i=1 To 5 显示有规律的5行 Print Tab(i);String(6-i,);Spc(6);

26、String(i,)Next i,利用String函数显示重复字符利用循环结构、Spc、Tab函数显示有规律图形,二、DoLoop循环语句,Do循环用于控制循环次数未知的循环结构。形式1为先判断后执行,有可能一次也不执行;形式2为先执行后判断,至少执行一次。,形式2:Do 语句块 Exit Do 语句块Loop While|Until,例:看程序写结果 i=-1 i=-1 j=1 j=1 Do While i 0 Do Print i Print i Loop Loop While i 0 Print j Print j,1,-11,形式1:Do While|Until 语句块 Exit Do

27、 语句块Loop,DoLoop流程,例:计算1+2+3+100 Dim s%,i%s=0 i=1 do while i=100 s=s+i i=i+1 loop print 1+2+100=“;s,思考:奇数及偶数求和 10!,三、循环的嵌套,在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。循环嵌套对For循环语句和DoLoop语句均适用。例1:看程序写结果,钟表中分针和秒针,For i=1 To 5 Print Print i=;i For j=1 To 3 Print*;Next j PrintNext i,Dim se As String Print Tab(35);九九乘法表

28、Print Tab(35);-For i=1 To 9 For j=1 To 9 se=i 每项表达式显示占9列 Next j Print 换行 Next i,思考:1、打印上三角程序如何改动?将For j=1 To 9改为For j=i To 9即可 2、打印下三角程序如何改动?将For j=1 To 9改为For j=1 To i即可,例2:打印九九乘法表,例3:以下程序段是错误的:内外循环交叉 内外循环变量同名 for ii=1 to 10 for ii=1 to 10 for jj=1 to 20 for ii=1 to 10 next ii next ii next jj next

29、ii 例4:以下程序段是正确的:两个并列的循环结构 嵌套循环结构 for ii=1 to 10 for ii=1 to 10.for jj=1 to 20 next ii.for ii=1 to 10 next jj.next ii next ii,四、其他辅助控制语句,1、Go To 语句 Go To 标号|行号 说明:无条件地转移到标号或行号指定的那行语句。标号是字符序列,首字符必须为字母,标号后应有冒号;行号是一个数字序列。例:看程序写结果 Print 100 Print qwe GoTo 3 Print 34 3:Print 56,100qwe56,2、退出和结束语句,Exit语句 V

30、B中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下:Exit For、Exit Do、Exit Sub、Exit Function End语句 用于结束一个程序的运行,它可以放在任何事件过程中。,MajpjMVcyzj21HLfrvy96dv02lPPfYgxUS7IYmZkyEmZ0kGeYZS3bpLCkYH1lt4EK7CxmUX3ijoYSOer7ZuaVWYgz4EpZrUirVpMzzvNtf1XZw5oswSXOtFaejnOcmfE1lZgnN1RSXg8wLCG8CVQ3XPJMvodPFWcpiYJgZazNSEPNIaklYSu7qSd1Upax

31、mZDlpN9zW7kljfsLCLi26Yv109ffbnDH8LbUN1G6ACURQ39eG12KHL9tXsZ1jzgoCK8g1kuNOh5eFvcmVT5ZYVQt9zk3rp3qLnf02FovEXxVRxjCcFRNppiJljNiOuk6fONnyX7fyGg7sXZ49BmCN5oy9VesHpKzdjTKwjrkCEQCFDehVmGax3lrOEbw63VscA3YSijtUKoCyiLzAlVRp7l4QgPNHxvJFFDyjUVN3oHlMah0XBd4uTbkfPIhHtw0evPmYOrdhEDoPwvYhzlGplU1AU9mpyiCXH8gpPCBRYjq

32、77VcnbXumNE1yGfyTsbSj89J63kRTKDkKUg3mdS5sJ4X5cQ8dK7oW9IkScssECQdz2O9UTlpRjAFPChjhLdzopQzwxQf8ozdzOhogwAooXpUF83BX4C3jRgjDJiiXEUDMaNz4vQ4n164vspddHvOIVuBBdMA4xp1YhiHk0vOJ8TL1BxogzVlMpmod6ianYGmksQq6NWCEd56hZF4wfaNyZcrGfNxnPiG6ZAxSkfmhJAKtNmCqbRmppeXp8inz4eq3HkWCMSORyMMX522xpHG6basNr6KQfbZsFbHjzyNlJrruLolKFcC84dqfijBO5Dy2NaBcNEBPgQrT12PgpcKx2or2YChN5DPjs80zzdtdAdTKuW4uVv9bbZu3K2SZ2aEhTlIC1UqrIWibkzwHh6p8gLv26zr01mJybfOzFc4T7kQH1IpPwOzMDnAKPLsLrznXGjFNIA9bSWWms6ibKZwQIKrMzalwbFrQJvOP1rPH8rx2KkyYqrtQk5VRwM1HSX,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号