版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBasic程序设计VisualBasic程序设计1第6章
循环结构程序设计●6.1
For...Next语句●6.2
Do…Loop循环语句●6.2.1前测型Do…Loop循环语句●6.1.2
后测型Do…Loop循环语句●6.3列表框与组合框
●6.1.3列表框控件●6.1.4
组合框控件●习题6
第6章循环结构程序设计●6.1For...Nex2●6.1For...Next语句
1.For...Next语句的语法格式For...Next语句的语法格式为:For〈循环变量〉=〈初值〉To〈终值〉[Step〈步长〉][〈语句组1〉][ExitFor][〈语句组2〉]Next[〈循环变量〉]2.For...Next语句的执行过程3.For...Next循环的循环次数循环体不被执行:l
当〈步长〉为正数时,〈初值〉大于〈终值〉。l
当〈步长〉为负数时,〈初值〉小于〈终值〉。通过下式计算:循环次数=INT((终值—初值)/步长+1)●6.1For...Next语句34.For...Next语句使用示例【例6-1】用For...Next语句求1+2+3+…+100的值。设计步骤如下:1)建立应用程序用户界面与设置对象属性,如图6-3所示。2)编写事件代码。编写“计算”命令按钮Command1的Click(单击)事件代码:PrivateSubCommand1_Click()DimsAsInteger,nAsIntegers=0 '累加器赋初值0Forn=1To100 '初值为1,终值为100,步长为1(省略)s=s+n '进行累加NextnText1.Text=s '输出累加结果EndSub4.For...Next语句使用示例4【例6-2】输出1000以内所有能被37整除的自然数。设计步骤如下:1)建立用户界面。在新建的窗体中增加一个文本框Text1、一个命令按钮Command1和一个框架Fram1。选中Frame1,在其中增加一个标签Label1,用来显示程序的说明。如图6-6(左)所示。2)设置对象属性3)编写事件代码【例6-2】输出1000以内所有能被37整除的自然数。5编写“开始”命令按钮Command1的Click(单击)事件代码:PrivateSubCommand1_Click()a=""Forn=1To1000IfnMod37=0Thena=a&Str(n)&Chr(13)&Chr(10) '用Chr(13)&Chr(10)设置行断点EndIfNextText1.Text=aEndSub5.For...Next语句的嵌套For...Next循环可以嵌套使用,嵌套层数没有具体限制,其基本要求是:l
每个循环必须有一个唯一的变量名作为控制变量。l
内层循环必须完全放在外循环体内,内外循环不得互相交叉骑跨。例如,下面的嵌套是错误的:Fora=1To5Forb=3To9...NextaNextb编写“开始”命令按钮Command1的Click(单击)事6NextbFor...Next循环的嵌套通常有以下3种形式:1)一般嵌套形式。Fora1=...Fora2=...Fora3=......Nexta3Nexta2Nexta12)上式中Next后面的a1、a2、a3可以省略不写。3)当内层循环与外层循环有相同的终点时,可共用一个Next语句。但是,控制变量名不能省略。例如:Fora=1To2Forb=2To3Forc=3To4Printa,b,cNextc,b,a【例6-3】打印出如图6-7所示的乘法“九九表”。Nextb7直接在窗体上输出。窗体Form的Load(载入)事件代码为:PrivateSubForm_Load()ShowFontSize=12 ‘设置字号PrintTab(25);"九九表" '输出标题Print '输出空行Print"*";Fori=1To9 '输出第一行数字(1~9)PrintTab(i*6);i;'每列空5格,定位输出NextiPrint '换行Forj=1To9 '外层循环Printj;"";Fork=1To9 '内层循环直接在窗体上输出。窗体Form的Load(载入)事件代码为:8m=j*k '计算乘积PrintTab(k*6);m;""; '定位输出NextkPrint '换行NextjEndSub●6.2
Do…Loop循环语句●6.2.1前测型Do…Loop循环语句1.前测型Do…Loop的语法格式其语法格式为:Do[{While|Until}〈条件〉][〈语句组1〉][ExitDo][〈语句组2〉]Loop3.前测型Do…Loop使用示例m=j*k '计算9【例6-4】用Do…Loop语句,计算1+2+3+…+100的值。设计步骤如下:1)建立用户界面与设置对象属性,如图6-9所示。2)设置对象属性,参见图6-10所示。3)编写事件代码。采用当型循环结构编写“计算”命令按钮Command1的Click(单击)事件代码为:PrivateSubCommand1_Click()DimsAsInteger,nAsIntegers=0:n=1 '累加器s赋初值0,计数器n赋初值1DoWhilen<=100 '当型循环s=s+n '累加和n=n+1 '计数器累加1LoopLabel2.Caption=sEndSub【例6-4】用Do…Loop语句,计算1+2+3+10“计算”命令按钮Command1的Click(单击)事件代码还可以改为直到型:PrivateSubCommand1_Click()DimsAsInteger,nAsIntegers=0:n=1DoUntiln>100 '直到型循环s=s+nn=n+1LoopLabel2.Caption=sEndSub该事件代码还可以利用ExitDo来编写:PrivateSubCommand1_Click()DimsAsInteger,nAsIntegers=0:n=1Dos=s+nn=n+1
“计算”命令按钮Command1的Click(单击)事件代码11Ifn>100ThenExitDo'如果n>100,则跳出循环LoopLabel2.Caption=sEndSub【例6-5】已知s=1×2×3×…×n,计算出s不大于5000时的最大n值。设计步骤如下:1)建立用户界面和设置对象属性,如图6-11所示。2)编写事件代码。编写“计算”命令按钮Command1的Click(单击)事件代码:PrivateSubCommand1_Click()DimnAsInteger,sAsLongCurrentY=Label2.Height+200 '确定输出位置n=1 '计数器赋初值1s=1 '累乘器赋初值1DoWhiles<=5000 '循环条件n=n+1 '计数器累加1s=s*n '累乘Printn,s '通过本行可以看到循环过程LoopIfn>100ThenExitDo12Label1.Caption="n="&Str(n–1)EndSub【例6-6】输入一个正整数,利用Do循环判断是否素数。设计步骤如下:1)建立用户界面和设置对象属性,如图6-13所示。2)编写事件代码。编写“判定素数”命令按钮Command1的Click(单击)事件代码:PrivateSubCommand1_Click()DimnAsLongSelectCaseVal(Text1.Text)CaseIs<3MsgBox"请输入一个大于2的整数!",vbInformation+vbOKOnly,"注意"CaseIs>2147483647MsgBox"此数太大!",vbInformation+vbOKOnly,"注意"CaseElsen=Val(Text1.Text)s=0:i=2DoWhilei<=Sqr(n)Ands=0Label1.Caption="n="&Str13IfnModi=0Thens=1Elsei=i+1EndIfLoopIfs=0Thena="是一个素数"Elsea="不是素数"EndIfLabel1.Caption=Str(n)&aEndSelectText1.SetFocusEndSub【例6-7】输出100~200之间不能被3整除的数。设计步骤如下:1)建立用户界面和设置对象属性,如图6-14所示。IfnModi=0Then142)编写事件代码。编写“开始”命令按钮Command1的Click(单击)事件代码:PrivateSubCommand1_Click()DimxAsIntegerx=100DoUntilx>200IfxMod3<>0ThenText1.Text=Text1.Text&Str(x)&Chr(13)&Chr(10)EndIfx=x+1LoopEndSub编写“清除”命令按钮Command2的Click(单击)事件代码:PrivateSubCommand2_Click()Text1.Text=""EndSub●6.1.2
后测型Do…Loop循环语句2)编写事件代码。151.后测型Do…Loop的语法格式后测型Do…Loop循环结构的语法格式为:Do[〈语句组1〉][ExitDo][〈语句组2〉]Loop[{While|Until}〈条件〉]2.后测型Do…Loop的执行过程分为当型和直到型:l
当型Do…WhileLoop:当条件为真(True)时继续执行循环体,条件为假(False)时,终止循环。l
直到型Do…UntilLoop:当条件为假时继续执行循环体,直到条件为真时,终止循环。在Do…Loop中,可以在循环体中放置任意个ExitDo语句,随时跳出Do…Loop循环
3.
后测型Do…Loop使用示例1.后测型Do…Loop的语法格式16【例6-8】输入有效数字的位数,利用下述公式计算圆周率π的近似值:设计步骤如下:
1)建立应用程序用户界面与设置对象属性,如图6-17所示2)编写程序代码。根据流程图,可以写出“计算”命令按钮Command1的Click事件代码为:PrivateSubCommand1_Click()DimmAsIntegerm=Val(Text1.Text)p=0#:s=2#:e=0.1^mDot=s:p=Sqr(2+p):s=s*2/pLoopUntilAbs(t-s)<0.1^mf=String(m-1,"#")Text2.Text=Format(s,"0."&f)Text1.SetFocusEndSub【例6-8】输入有效数字的位数,利用下述公式计算圆周率π的近17文本框Text1的GotFocus事件代码:PrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSub【例6-9】输入两个正整数,求它们的最大公约数。设计步骤如下:1)建立应用程序用户界面与设置对象属性,如图6-19所示。文本框Text1的GotFocus事件代码:182)编写程序代码。根据流程图,编写“计算”命令按钮Command1的Click事件代码为:PrivateSubCommand1_Click()DimmAsInteger,nAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)Ifm<nThent=m:m=n:n=t'交换数据,使大数在前,小数在后EndIfDo '求最大公约数Ifn<=0Orm<=0Then ‘检验数据范围MsgBox"请重新输入数据!"ExitDoEndIf
2)编写程序代码。根据流程图,编写“计算”命令按钮Com19r=mModnm=n n=rLoopWhiler<>0 '当r<>0时辗转相除Label3.Caption=m '输出结果EndSuab【例6-10】设华氏温度为h,摄氏温度为s,已知将华氏温度转换为温度的公式为:窗体Form1的Load(载入)事件代码为:PrivateSubForm_Load()DimhAsString,sAsSingle,tsAsStringDo
r=mModn20h=InputBox("请输入华氏温度","华氏温度") '利用输入对话框输入华氏温度Ifh<>""Thens=Int((h-32)*5/9)'计算摄氏温度MsgBox"摄氏温度为"&Str(s),0+48+256,"转换为摄氏温度"EndIfLoopWhileh<>""'若输入框中的值不为空,反复计算EndSub●6.3列表框与组合框●6.1.3列表框控件1.列表框的属性(1)基本属性列表框的常用属性有Name、Enabled、Visible、Index等。
h=InputBox("请输入华氏温度","华氏温度"21(2)List属性(3)Text属性(4)ListCount属性(5)ListIndex属性(6)Selected属性(7)Sorted属性(8)MultiSelect属性2.列表框的方法AddItem方法形式如下:〈对象〉.AddItem〈字符串表达式〉[,〈位置〉](2)Clear方法形式如下:〈对象〉.Clear(3)RemoveItem方法。形式如下:〈对象〉.RemoveItem〈位置〉3.列表框使用示例【例6-11】在列表框中,显示200以内能被6整除的自然数。设计步骤如下:1)建立用户界面与设置对象属性(2)List属性(3)Text属性222)编写事件代码。编写“显示”命令按钮Command1的Click(单击)事件代码:PrivateSubCommand1_Click()List1.Clear '清空列表框的内容Forn=1To200IfnMod6=0ThenList1.AddItemn'若n能被6整除,则添到列表框中NextnEndSub编写“关闭”命令按钮Command2的Click(单击)事件代码:2)编写事件代码。23PrivateSubCommand2_Click() UnloadMeEndSub【例6-12】从文本框中输入或从列表框中选择姓名,并且显示结果,如图6-25所示。设计步骤如下:1)建立应用程序用户界面与设置对象属性PrivateSubCommand2_Click() 242)编写程序代码。编写列表框List1的Click事件代码:PrivateSubList1_Click()Text1.Text=List1.TextEndSub编写文本框Text1的Change事件代码:PrivateSubText1_Change()Label1.Caption="您所选择的代表是:"EndSub编写命令按钮Command1的Click事件代码:PrivateSubCommand1_Click()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)Label1.Caption="您所选择的代表是:"+Text1.TextEndSub2)编写程序代码。25【例6-13】在列表框之间移动数据,如图6-26所示。设计步骤如下:1)建立应用程序用户界面与设置对象属性。2)编写程序代码。编写窗体的Load事件代码:PrivateSubForm_Load()List1.AddItem"青菜"List1.AddItem"罗卜"List1.AddItem"豆腐"List1.AddItem"苹果"List1.AddItem"香蕉"List1.AddItem"桔子"EndSub编写命令按钮Command1的Click事件代码:PrivateSubCommand1_Click()List2.AddItemList1.TextList1.RemoveItemList1.ListIndexEndSub
【例6-13】在列表框之间移动数据,如图6-26所示。26编写命令按钮Command2的Click事件代码:PrivateSubCommand2_Click()List1.AddItemList2.TextList2.RemoveItemList2.ListIndexEndSub【例6-14】修改例6-13,允许从一个列表框中将选中的多项选项移至另一个列表框,如图6-27所示。2)修改程序代码。命令按钮Command1的Click事件代码:PrivateSubCommand1_Click()i=0DoWhilei<List1.ListCount-1IfList1.Selected(i)=TrueThenList2.AddItemList1.List(i)List1.RemoveItemiElsei=i+1EndIfLoopEndSub编写命令按钮Command2的Click事件代码:27命令按钮Command2的Click事件代码:PrivateSubCommand2_Click()i=0DoWhilei<List2.ListCount-1IfList2.Selected(i)=TrueThenList1.AddItemList2.List(i)List2.RemoveItemiElsei=i+1EndIfLoopEndSub●6.1.4
组合框控件
1.下拉组合框
2.简单组合框命令按钮Command2的Click事件代码:283.下拉列表框4.组合框使用示例【例6-15】利用组合框设计“自动抽奖机”。设计步骤如下:(1)建立应用程序用户界面与设置对象属性。
(2)编写事件代码。编写组合框Combo1的KeyPress(按键)事件代码:PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then '按Enter键Combo1.AddItemCombo1.Text,0 '接受输入的号码Combo1.SelStart=0 '设置组合框的起始位置Combo1.SelLength=Len(Combo1.Text)'设置选择组合框的长度EndIfIfKeyAscii=27Then '按Esc键IfCombo1.ListIndex<>-1ThenCombo1.RemoveItemCombo1.ListIndex '移去选项EndIfEndIfEndSub3.下拉列表框29编写“自动抽奖”命令按钮Command1的Click(单击)事件代码,使之可以随机地抽取奖号:PrivateSubCommand1_Click()Randomizen=Combo1.ListCount '求组合框中的项目数a=Int(Rnd*n) '利用随机数函数求随机序号Combo1.ListIndex=aLabel2.Caption="中奖的号码是:"&Chr(13)&Combo1.TextEndSub编写“退出”命令按钮Command2的Click(单击)事件代码:PrivateSubCommand2_Click()UnloadMeEndSub编写“自动抽奖”命令按钮Command1的Click(单击3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东外语外贸大学南国商学院《材料测试技术》2023-2024学年第一学期期末试卷
- 广东司法警官职业学院《固体废弃物处理与处置实验》2023-2024学年第一学期期末试卷
- 广东石油化工学院《影视校色》2023-2024学年第一学期期末试卷
- 广东生态工程职业学院《现代家庭教育》2023-2024学年第一学期期末试卷
- 广东轻工职业技术学院《AutoCAD》2023-2024学年第一学期期末试卷
- 一年级数学(上)计算题专项练习集锦
- 2024八年级地理上册专项训练五中国的经济发展习题课件晋教版
- 七年级下册英语教案
- 2025年九年级统编版语文寒假预习 08 九下第六单元课预习
- 【2021届备考】2020年全国各地名校生物试题分类解析汇编:K单元-生态系统与生态环境的保护
- 江苏大学《操作系统》2023-2024学年期末试卷
- 《国际经济与贸易》考试复习题库(含答案)
- 高中日语(新版标准日本语初级上册)全册复习总结课件
- 教师资格考试小学心理健康面试试题与参考答案(2024年)
- 2024年国家开放大学本科《知识产权法》第一至四次形考任务试题及答案
- 2024-2025学年人教版高二上学期期末语文试卷与参考答案
- 国有企业考勤制度管理办法
- 滤波器计算器
- 人教版六年级上册道德与法治知识点
- 期货从业资格(期货基础知识)历年真题试卷汇编27
- 人工智能学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论