第7章-VisualBasic控制结构_第1页
第7章-VisualBasic控制结构_第2页
第7章-VisualBasic控制结构_第3页
第7章-VisualBasic控制结构_第4页
第7章-VisualBasic控制结构_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章VisualBasic控制结构主讲教师:刘潇(计科系)联系电话Q:421877450E-mail:liuxiao528@163.com1本章讨论VisualBasic中除顺序结构之外的流程控制语句,包括选择结构、多分支结构及循环结构语句。目录7.1选择控制结构多分支控制结构7.2For循环控制结构7.3当循环控制结构7.47.5Do循环控制结构多重循环7.6GoTo型控制7.77.1选择控制结构If...Then语句格式:

If条件Then语句或If条件Then语句块EndIf功能:如果条件成立(值为真),则执行Then后面的语句或语句块,否则直接执行下一条语句或“EndIf”的下一条语句。7.1选择控制结构编写一段代码实现:单击窗体,在弹出的输入对话框中输入成绩(CJ)数值,当成绩(CJ<60时),显示“成绩不及格”,换行显示“请参加补考”。PrivateSubForm_Click()CJ=Val(InputBox("请输入成绩数值:","成绩判断"))If

CJ<60

Then

Print"成绩不及格"Print"请参加补考"EndIfEndSub7.1选择控制结构If...Then...Else语句格式:

If条件Then语句块1(A)Else语句块2(B)EndIf功能:首先测试条件,当条件成立时,执行语句块1;当条件不成立时,执行语句块2。执行完语句块2之后,执行“EndIf”之后的语句。7.1选择控制结构输入三个数:a、b、c,求出其中最大数。PrivateSubCommand1_Click()DimaAsSingle,bAsSingleDimcAsSingle,mAsSinglea=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)Ifa<bThenm=bElsem=aEndIf

Ifm<cThenm=cText4.Text=mEndSub7.1选择控制结构IIf函数格式:

result=IIf(条件,True部分,False部分)功能:当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时返回“False部分”。例如:将a、b中的小数,放在Min变量中。

Min=IIf(a<b,a,b)7.1选择控制结构ElseIf格式格式:

If条件1Then语句块1[ElseIf条件2Then语句块2][ElseIf条件3Then语句块3]......[Else语句块n]EndIf功能?7.1选择控制结构输入学生成绩(百分制),判断该成绩的等级(优良、及格、不及格)PrivateSubCommand1_Click()DimscoreAsInteger,tempAsStringscore=Val(Text1.Text)temp="成绩等级为:"Ifscore<0ThenLabel2.Caption="成绩出错"ElseIfscore<60ThenLabel2.Caption=temp+"不及格"ElseIfscore<=79ThenLabel2.Caption=temp+"及格"ElseIf

score<=100ThenLabel2.Caption=temp+"优良"ElseLabel2.Caption="成绩出错"EndIfEndSub7.2多分支控制结构SelectCase语句格式:SelectCase测试表达式Case表达式表列1[语句块1][Case表达式表列2[语句块2]]......[CaseElse[语句块n]]EndSelect功能:先计算表达式的值,然后将该值依次与结构中的每个Case值进行比较,如果该值符合某个Case指定的值条件时,就执行该Case的语句块,然后跳到EndSelect,从EndSelect出口。如果没有相符合的Case值,则执行CaseElse中的语句块。三种写法:Case1,3,5Case60To80CaseIs<507.2多分支控制结构输入学生成绩(百分制),判断该成绩的等级(优良、及格、不及格)PrivateSubCommand1_Click()DimscoreAsInteger,tempAsStringscore=Val(Text1.Text)temp="成绩等级为:"SelectCasescore

Case

0to59Label2.Caption=temp+"不及格"

Case60to79Label2.Caption=temp+"及格"

Case80to100Label2.Caption=temp+"优良"

CaseElseLabel2.Caption="成绩出错"EndSelectEndSub7.2多分支控制结构输入两个运算数和运算符(+、-、*、/),组成算式并计算结果,然后显示出来。PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,tAsSingle,sAsStringa=Val(Text1.Text)b=Val(Text2.Text)SelectCaseTrue

CaseOption1.Values="+":t=a+b

CaseOption2.Values="-":t=a-b

CaseOption3.Values="*":t=a*b

CaseOption4.Values="/":t=a/bEndSelectText3.Text=a&s&b&"="&tEndSub7.3For循环控制结构For...Next循环语句格式:

For循环变量=初值To终值[Step步长值]循环体Next循环变量功能:本语句指定循环变量取一系列数值,并且对循环变量的每一个值把循环体执行一次。初值、终值和步长值都是数值表达式步长值为正数时,为递增循环;反之,为递减循环。若步长值为1,则Step1可以省略。7.3For循环控制结构求S=1+2+3+4…+98+99+100采用Print在窗体上直接输出结果PrivateSubForm_Load()Shows=0

Fork=1To100s=s+k

NextPrint"s=";sEndSub结果:7.3For循环控制结构求T=8!=1×2×3×4…×8采用Print在窗体上直接输出结果PrivateSubForm_Load()Show

t=1

For

c=1To

8

t=t

*

c

NextPrint"T=";tEndSub结果:7.4当循环控制结构While...Wend循环语句格式:

While条件循环体Wend功能:当条件成立时,执行循环体;当条件不成立时,终止循环。与For循环的区别:For:对循环体执行指定的次数;While:在指定的条件为True时重复一语句序列(循环体)的执行。7.4当循环控制结构求T=8!=1×2×3×4…×8采用Print在窗体上直接输出结果采用While...Wend循环语句PrivateSubForm_Load()DimcAsIntegerShowt=1c=1

Whilec<=8t=t*cc=c+1WendPrint"T=";tEndSub结果:7.5Do循环控制结构Do...Loop循环语句格式1:

Do[{While|Until}条件]

循环体Loop功能:当指定的“循环条件”为真或直到指定的“循环条件”变为真之前,重复执行循环体格式2:

Do

循环体

Loop[{While|Until}条件]7.5Do循环控制结构Do…LoopUntil循环逻辑框图Do…LoopWhile循环逻辑框图7.5Do循环控制结构DoUntil…Loop循环逻辑框图

DoWhile…Loop循环逻辑框图7.5Do循环控制结构求S=12+22+…+1002采用DoWhile...Loop语句采用Print直接在窗体上输出结果,程序代码PrivateSubForm_load()DimnAsInteger,sAsLongShown=1:s=0

DoWhilen<=100s=s+n*nn=n+1

LoopPrint"s=";sEndSub程序运行结果:S=3383507.5Do循环控制结构输入两个正整数,求它们的最大公约数用“辗转相除法”算法:求出m/n余数p,若p=0,n即为最大公约数;若p非0,则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解。PrivateSubcommand1_click()DimmAsInteger,nAsInteger,pAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)

Ifm<=0Orn<=0ThenMsgBox"数据错误!"EndEndIfDop=mModnm=nn=p

LoopWhilep<>0Text3.Text=mEndSub补充:循环控制结构循环出口语句格式:Exit{For|Do}

功能:直接从For循环或Do循环中退出当程序运行时遇到Exit语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句(Next、Loop)的下面继续执行补充:循环控制结构设计一个“加法器”程序,把每次输入的数累加。当输入-1时结束程序的运行。PrivateSubForm_load()

DimxAsSingle,SumAsSingleShowSum=0DoWhileTrue

x=Val(InputBox(“请输入要加入的数_(-1表示结束)","输入数据"))

Ifx=-1Then

ExitDo

EndIfSum=Sum+xText1.Text=SumLoopMsgBox"累加运算结束“EndSub7.6多重循环多重循环程序示例PrivateSubForm_load()Show

Fori=1To3'外循环

Forj=5To7'内循环

Printi,j

Nextj

NextiEndSub多重循环是指循环体内含有循环语句的循环注意内、外循环层次要分清,不能交叉。程序运行结果:1 51 61 72 52 62 73 53 63 77.6多重循环编一程序,输出下列所示的图形。

本例可采用两重循环来实现。外循环控制输出7行,内循环控制每行输出要求的字符数。在进入内循环之前,使用PrintTab()来对起始输出位置定位,退出内循环后,使用Print来控制换行。7.6多重循环编一程序,输出下列所示的图形。PrivateSubForm_load()Show

Fori=1To7PrintTab(10-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论