中山大学VB课件第5章控制结构程序设计.ppt_第1页
中山大学VB课件第5章控制结构程序设计.ppt_第2页
中山大学VB课件第5章控制结构程序设计.ppt_第3页
中山大学VB课件第5章控制结构程序设计.ppt_第4页
中山大学VB课件第5章控制结构程序设计.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第5章选择结构程序设计,VB中提供了三种用来实现选择结构的流程控制语句,即:块结构条件语句IfThenEndIf多分支条件语句ElseIf多分支选择语句SelectCaseEndSelect,5.1块if语句块结构if语句语法格式如下:,块结构if语句语法格式如下:IfThenElseEndIf其中为必选项,它是一个逻辑值的表达式,其返回结果必须是True或False。对于数值表达式,VB将0作为False,非0作为True来处理;对于字符串表达式,VB只允许出现包含数字的字符串,当字符串中的数字值为0时,则认为是False,否则认为是True。,说明:说明:1整个块结构必须以If开始,以EndIf结束。2块结构If语句中Then后面的语句不能与其写在同一行上,否则,必须加上分隔符。3块结构中的是可以省略的。4.在块结构中,If后面显式的给出了判断条件,Else后面虽然没有显式的给出一个条件,但相当于存在一个与If部分相反的隐含条件。,块结构If语句的简单形式:IfThenElse如:IfX0ThenPrintPrint-XIfX0ThenPrint简单的块结构If语句解决是“二选一”的两分支选择问题。在实际应用中,经常会遇到“多分支”选择的程序,即从多种情况中选择执行其中一种情况,这时,就要使用块if语句的嵌套。,5.2块if语句的嵌套块结构If语句可以嵌套,即在上述结构中的和部分仍然可以包含另外一个块结构If语句。例如,下面就是一个简单的块结构嵌套的语句。IfThenIfThenElseEndIfElseEndIf,这个语句就是在块结构的If部分嵌套了另外一个块结构。执行该语句时,首先判断是否成立,如果成立,则再判断是否成立,如果成立,则执行,否则执行;如果不成立,则执行。当然,在Else部分也可以嵌套另外的块If结构,If和Else部分也可以同时嵌套。,说明:1如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚,便于阅读和查错。2每一个块结构都必须以If开始,以EndIf结束。3利用块If语句的嵌套可以解决“多分支”选择的问题。,5.3ElseIf语句格式:If条件1then语句块1ElseIf条件2then语句块2Else语句块n+1EndIf,格式说明:1可以放置任意多个ElseIf子句。2关键字ElseIf中间没有空格,不能写成ElseIf。功能:依次判断条件,如某一条件成立,则执行其下面的语句块;如果所有条件均不成立,则执行Else后面的语句。在相应语句块执行完后,会跳过EndIf,执行其后面的语句。,功能说明:1不管有几个ElseIf子句,程序执行完一个语句块后,其余ElseIf子句不再执行。2当多个ElseIf子句中的条件都成立时,只执行第一个条件成立的子句中的语句块。因此,在使用ElseIf语句时,要特别注意各判断条件的前后次序。ElseIf语句可以用来处理当条件不成立时又内嵌块If语句的情形,以使程序简化易写。,格式:SelectCase表达式Case取值1语句块1Case取值2语句块2Case取值n语句块nCaseElse语句块n+1EndSelect,格式说明:1“测试表达式”可以是数值表达式或字符串表达式。2“表达式列表”与“测试表达式”的类型必需相同。3“表达式列表”由表5-1所示形式的表达式组成。4当使用多个表达式组成列表时,表达式与表达式之间要用英文逗号“,”隔开。,形式示例说明(1)表达式Case100+a数值或字符串表达式(2)一组用逗号分隔的枚举值Case2,4,6,8测试表达式的值等于2,4,6,8之一(3)表达式1To表达式2Case1To101测试表达式10(4)Is关系运算符表达式CaseIs20测试表达式20,功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。SelectCase语句的执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect后面的语句;如果没找到,则执行CaseElse后面的语句块,然后执行EndSelect后面的语句。,(三)循环程序结构,在编程时,常常需重复执行一组语句,这可通过循环结构来实现。VB中提供了两种类型的循环语句:一种是计数循环语句;另一种是条件循环语句。,格式:For循环变量=初值To终值Step步长Next循环变量,1、ForNext语句(计数循环),说明:循环变量必须为数值型。循环的初值、终值和步长都是数值表达式。其中,增量参数可正可负。如果没有设置step,则增量默认为1。Next是循环终端语句,在Next后面的循环变量与For中的循环变量必须相同。当循环是单层循环时,Next后面的循环变量可以不写。,例:求1+2+3+100。,sum=0Fori=1to100sum=sum+iNext,例:找出所有小于50的正整数中等于7的倍数的数。,Fori=7to50step7printiNext,练习:1、编写程序求S=20!的值2、编写程序求S=12+22+32+n2(其中n的值由用户输入),作业:要求用ForNext语句编写以下程序:1、计算Y=A!+B!+C!的值,其中A=6,B=8,C=5。2、求半径从1到n的n个圆面积之和(其中n的值由用户输入)。,练习:(1)通过键盘输入10个学生的考试成绩,计算并显示其平均成绩。(2)从键盘输入10个整型数据,将其中的负数以及负数的和显示出来。,2、条件循环语句(DoLoop)(1)当型循环(DoWhileLoop、DoLoopWhile)(2)直到型循环(DoUntilLoop、DoLoopUntil),格式:DoWhile条件表达式循环体ExitDo循环体Loop,说明:循环体中要有控制循环的语句,以避免出现死循环。由于该循环的特点是先判断条件,然后再决定是否要执行循环体里的语句。所以,这种循环可以一次也不执行循环体。ExitDo表示当遇到该语句时,强制退出循环,执行Loop后的下一条语句。,T,例:S=1+2+3+n,编写程序求使得S1000的最小n值。,DimnAsInteger,sAsIntegers=0n=1DoWhiles1000的最小n值是:是一个素数ElsePrintn;不是素数EndIfEndSub,【例4】假设我国现有人口12亿,若年增长率为1.5%,试计算多少年后我国人口增加到或超过20亿。人口计算公式为:p=y(1+r)ny为人口初值,r为年增长率,n为年数。,PrivateSubForm_click()Dimp!,r!,I%p=12r=0.015I=0Whilep=90ThenText2.Text=优秀,ElseIfscore=80ThenText2.Text=良好ElseIfscore=70ThenText2.Text=中ElseIfscore=60ThenText2.Text=及格Else,Text2.Text=不及格EndIfEndSub“退出”按钮代码PrivateSubCommand2_Click()EndEndSub,把例中“鉴定”按钮的代码用SelectCase语句改写。PrivateSubCommand1_Click()Dimscore!score=Text1.TextSelectCasescoreCaseIs=90,Text2.Text=优秀CaseIs=80Text2.Text=良好CaseIs=70Text2.Text=中CaseIs=60,Text2.Text=及格CaseElseText2.Text=不及格EndSelectEndSub,【例7】任意输入三个数,找出其中的最大值。,PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,maxAsSinglea=Text1.Textb=Text2.Textc=Text3.Textmax=aIfbmaxThenmax=b,IfcmaxThenmax=cText4.Text=m

温馨提示

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

评论

0/150

提交评论