您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 《VisualBasic程序设计与实训教程》第4章控制结构
2020/1/10清华大学出版社1第4章控制结构4.1顺序结构4.2选择结构4.3循环结构2020/1/10清华大学出版社2【目的要求】1、理解三种结构的程序设计方法的含义;2、掌握分支语句(if、case)的语法格式;3、掌握if语句的嵌套格式的使用方法;4、掌握VB中循环语句的语法格式;5、能熟练地运用循环语句进行程序设计【重点】If语句的嵌套应用循环语句及循环的嵌套在编程中的应用【难点】循环的嵌套2020/1/10清华大学出版社34.1顺序结构顺序结构是一种线性结构,也是程序设计中最简单、最常用的基本结构。其特点是按照命令的书写顺序从上到下顺序执行的一种结构。在“第三章简单VB程序设计”中已经叙述。4.2选择结构选择结构的语句有:If…Then语句(单分支结构)、If…Then…Else语句(双分支结构)、If…Then…ElseIf语句(多分支结构)、If语句的嵌套、SelectCase语句(情况语句)和条件函数。2020/1/10清华大学出版社44.2.1单分支结构条件语句1.单分支结构条件语句格式:(1)If关系表达式Then语句块EndIf(2)If关系表达式Then语句说明:语句块可以是一句或多句,若用第二种形式表示,则只能是一句语句,若多句,语句间需用冒号(:)分隔,而且必须在一行上书写。【例4.1】已知两个数x和y,比较它们的大小,使得x小于y。2020/1/10清华大学出版社5方法一IfxyThent=x‘将x与y交换x=yy=tEndif4.2.2双分支结构条件语句1.双分支结构条件语句格式If表达式Then语句块1Else语句块2EndIf双分支结构流程图如右图所示。方法二IfxyThent=x:x=y:y=t表达式语句块1语句块2TrueFalse2020/1/10清华大学出版社62.双分支结构条件语句首先判断条件是否成立,如果成立,则执行语句块1而略过语句块2继续向下执行程序;如果不成立,则执行语句块2而略过语句块1。【例4.2】计算分段函数,程序运行效果如图所示。方法一:用单行结构实现双击窗体中【单分支结构实现】按钮,为Command1_Click()事件添加如下代码:PrivateSubCommand1_Click()X=Val(Text1.Text)Y=3*X+2IfX0ThenY=X^2-5Text2.Text=YEndSub2020/1/10清华大学出版社7方法二:用双分支结构实现双击窗体中【双分支结构实现】按钮,为Command2_Click()事件过程添加如下代码:PrivateSubCommand2_Click()X=Val(Text1.Text)IfX0ThenY=X^2-5ElseY=3*X+2EndIfText3.Text=YEndSub方法三:用两个单分支结构实现PrivateSubCommand3_Click()X=Val(Text1.Text)IfX0ThenY=X^2-5IfX=0ThenY=3*X+2Text4.Text=YEndSub2020/1/10清华大学出版社84.2.3多分支结构1.多分支结构语句格式:If表达式1Then语句块1ElseIf表达式2Then语句块2…[Else语句块n+1]EndIf2.多分支结构语句作用测试条件的顺序为:表达式1、表达式2……,当遇到表达式值为True时,则执行该条件下的语句块。注意:(1)当某条件满足,执行相应的语句块,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。(2)ElseIf不能写成ElseIf。(3)若多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块。2020/1/10清华大学出版社9【例4.3】已知字符型变量strChar中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。PrivateSubCommand1_Click()strChar=Text1.Text‘将录入字符文本框中的文字赋给strChar’判断是否是字母字符IfUCase(strChar)=“A”AndUCase(strChar)=“Z”ThenText2.Text=“字母”‘判断是否是数字字符ElseIfstrChar=“0”AndstrChar=“9”ThenText2.Text=“数字”ElseText2.Text=“其他字符”’对其他字符的处理ENDIFEndSub2020/1/10清华大学出版社104.2.4If语句的嵌套格式1:If表达式1ThenIf表达式2Then语句1else语句2EndIfelse语句3EndIf【例4.4】已知x、y、z3个数,比较它们的大小并排序,使得xyz。程序运行效果格式2:If表达式1Then语句1elseIf表达式2Then语句2else语句3EndIfEndIf2020/1/10清华大学出版社114.2.5情况语句:1.情况语句格式为SelectCase变量或表达式Case表达式列表1语句块1[Case表达式列表2语句块2]……[CaseElse语句块n+1]EndSelect其中变量或表达式:可以是数值型或字符串表达式。表达式列表:必须与变量或表达式的类型相同,可以是表达式、一组用逗号分隔的枚举值、表达式1to表达式2、Is关系运算符表达式,并且这几种表达式形式可以混用。多个表达式列表间用逗号分隔。2020/1/10清华大学出版社12表达式列表可以是同类型的下面三种形式之一:①一组枚举表达式(用逗号分隔)例:2,4,6,8或”A”,”B”,”C”,”D”②表达式1To表达式260To100或“A”To“Z”③Is关系运算符表达式,适用的运算符包括,=,,=,,=如:Is60注意:(1)并不是所有的多分支结构都可以用情况语句代替。(2)关键字To用来指定一个范围。必须将较小的值写在前面,较大的值写在后面,字符串常量的范围必须按字母顺序写出。(3)不能在case后直接用逻辑运算符将两个或多个简单条件组合在一起。例如:CaseIs10AndIs10是不合法的。(4)Case子句的顺序对执行结果没有影响,CaseElse子句必须放在所有的Case子句之后。2020/1/10清华大学出版社13【例4.5】已知输入某课程的百分制成绩Score,要求显示对应五级制的评定。评定级制条件:优良中及格不及格90≤Score<10080≤Score<9070≤Score<8060≤Score<70Score<602020/1/10清华大学出版社14方法一PrivateSubCommand1_Click()score=Val(Text1.Text)SelectCasescoreCase90To100grade=优秀Case80To89grade=良好Case70To79grade=中等Case60To69grade=及格Case0To59grade=不及格CaseElsegrade=输入成绩无效EndSelectText2.Text=gradeEndSubPrivateSubCommand1_Click()score=Val(Text1.Text)SelectCasescore\10Case9,10grade=优秀Case8grade=良好Case7grade=中等Case6grade=及格Case0To5grade=不及格CaseElsegrade=输入成绩无效EndSelectText2.Text=gradeEndSub方法二2020/1/10清华大学出版社154.2.6IIf函数(条件函数)函数形式:IIf(条件,True部分,False部分)例如:求X、Y中大的数,并将大数放入变量iMax中。iMax=IIf(XY,X,Y)根据表达式的值,返回两部分中的一个。4.2.7常见错误1.在选择结构中缺少配对的结束语句对多行式的If块语句中,应有配对的EndIf语句结束。2.多分支结构ElseIf关键字的书写和条件表达式的表示应注意多个条件表达式次序以及ElseIf不要写成ElseIf。3.SelectCase语句的使用SelectCase后不能出现多个变量,Case子句后不能出现变量。2020/1/10清华大学出版社164.3循环结构vb中循环的3种结构即⑴计数循环(For-Next循环)⑵当循环(While-Wend循环)⑶Do循环(Do–Loop循环)。4.3.1For循环控制结构语句格式:For循环变量=初值To终值[Step步长]语句块[ExitFor]语句块Next循环变量For语句执行流程如左图所示:2020/1/10清华大学出版社17说明:(1)循环变量:必须为数值型。(2)步长:一般为正,初值小于终值;若为负,初值大于终值;默认步长为1。(3)语句块:可以是一句或多句语句,称为循环体。(4)ExitFor:表示当遇到该语句时,退出循环体,执行Next的下一条语句。(5)循环次数=int((终值-初值)/步长+1)(6)退出循环后,循环变量的值保持退出时的值。(7)在循环体内对循环变量可多次引用,但不要对其赋值,否则影响结果。2020/1/10清华大学出版社18【例4.6】计算1~N之间的奇、偶数之和(N为自然数)。PrivateSubCommand1_Click()DimiAsLong,sum1AsLong,sum2AsLongsum1=0sum2=0Fori=0ToText1.TextStep2'计算偶数和sum2=sum2+iNextiFori=1ToText1.TextStep2'计算奇数和sum1=sum1+iNextiText2.Text=sum1Text3.Text=sum2EndSub2020/1/10清华大学出版社194.3.2While循环控制结构While循环用于不知道循环次数,但可以用一个条件来进行判断是否结束。格式:While条件语句块Wendwhile条件语句块TrueFalse执行流程如左图所示:当给定的条件成立时,执行循环中的“语句块”,否则退出While循环,执行Wend后面的语句。2020/1/10清华大学出版社20【例4.7】从键盘上输入字符,对输入的字符进行计数,当输入的字符为“#”号时,停止计数,并输出结果。PrivateSubForm_Click()DimCharasStringConstCh$="#"Counter=0Msg$="请输入一个字符:"Char=InputBox$(Msg$)WhileCharCh$Counter=Counter+1Char=InputBox$(Msg$)WendPrint"输入字符串的个数为:";CounterEndsub2020/1/10清华大学出版社214.3.3Do循环控制结构Do循环语句有两种语法形式:一种是先判定条件的,称为当型循环结构;另一种是后判定条件的,称为直到循环结构。其流程见下图:条件循环体TrueFalse条件循环体FalseTrueDoWhile…..LoopDoUntil…..Loop格式1:前测型Do[While|Until条件]语句块[ExitDo]语句块Loop2020/1/10清华大学出版社22说明:(1)格式1为先判断后执行,有可能一次也不执行。(2)格式2为先执行后判断,至少执行一次。(3)关键字While用于指明条件为真时就执行循环体中的语句,Until刚好相反。(5)ExitDo语句可以提前退出循环,执行Loop的下一条语句。格式2:后测型Do语句块[ExitDo]语句块Loop[While|Until条件]条件?循环体TrueFalse条件?循环体FalseTrueDo.….LoopWhileDo…..LoopUntil20
本文标题:《VisualBasic程序设计与实训教程》第4章控制结构
链接地址:https://www.777doc.com/doc-2864983 .html