《《VisualBasic程序设计与实训教程》第4章控制结构ppt课件》由会员分享,可在线阅读,更多相关《《VisualBasic程序设计与实训教程》第4章控制结构ppt课件(27页珍藏版)》请在金锄头文库上搜索。
1、2020/10/20,清华大学出版社,1,第4章 控制结构,4.1 顺序结构 4.2 选择结构 4.3循环结构,【目的要求】 1、理解三种结构的程序设计方法的含义; 2、掌握分支语句(if、case)的语法格式; 3、掌握if语句的嵌套格式的使用方法; 4、掌握VB中循环语句的语法格式; 5、能熟练地运用循环语句进行程序设计 【重点】 If语句的嵌套应用 循环语句及循环的嵌套在编程中的应用 【难点】 循环的嵌套,2020/10/20,2,清华大学出版社,4.1 顺序结构,顺序结构是一种线性结构,也是程序设计中最简单、最常用的基本结构。其特点是按照命令的书写顺序从上到下顺序执行的一种结构。在“第
2、三章简单VB程序设计”中已经叙述。,4.2 选择结构 选择结构的语句有:IfThen语句(单分支结构)、IfThenElse语句(双分支结构)、IfThenElseIf语句(多分支结构)、If语句的嵌套、Select Case语句(情况语句)和条件函数。,2020/10/20,3,清华大学出版社,4.2.1 单分支结构条件语句1.单分支结构条件语句格式: (1) If Then End If (2) If Then 说明:语句块可以是一句或多句,若用第二种形式表示,则只能是一句语句,若多句,语句间需用冒号(: )分隔,而且必须在一行上书写。,【例4.1】已知两个数x和y,比较它们的大小,使得
3、x小于y。,2020/10/20,4,清华大学出版社,方法一 If xy Thent=x 将x与y交换x=yy=tEnd if,4.2.2 双分支结构条件语句1.双分支结构条件语句格式 If Then Else End If双分支结构流程图如右图所示。,方法二 If xy Then t=x : x=y : y=t,2020/10/20,5,清华大学出版社,2.双分支结构条件语句首先判断条件是否成立,如果成立,则执行语句块1而略过语句块2继续向下执行程序;如果不成立,则执行语句块2而略过语句块1。 【例4.2】 计算分段函数,程序运行效果如图所示。方法一:用单行结构实现双击窗体中【单分支结构实现
4、】按钮,为Command1_Click()事件添加如下代码:Private Sub Command1_Click() X = Val(Text1.Text) Y = 3 * X + 2 If X 0 Then Y = X 2 - 5 Text2.Text = YEnd Sub,2020/10/20,6,清华大学出版社,方法二:用双分支结构实现双击窗体中【双分支结构实现】按钮,为Command2_Click()事件过程添加如下代码:Private Sub Command2_Click() X = Val(Text1.Text) If X 0 Then Y = X 2 - 5 Else Y = 3
5、 * X + 2 End If Text3.Text = YEnd Sub,方法三:用两个单分支结构实现Private Sub Command3_Click()X = Val(Text1.Text)If X 0 Then Y = X 2 - 5If X = 0 Then Y = 3 * X + 2Text4.Text = YEnd Sub,2020/10/20,7,清华大学出版社,4.2.3多分支结构1.多分支结构语句格式: If Then ElseIf Then Else End If2.多分支结构语句作用 测试条件的顺序为:、,当遇到表达式值为True时,则执行该条件下的语句块。 注意:(
6、1) 当某条件满足,执行相应的语句块,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。(2)ElseIf不能写成Else If 。(3)若多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块。,2020/10/20,8,清华大学出版社,【例4.3】已知字符型变量strChar中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。,Private Sub Command1_Click() strChar = Text1.Text 将录入字符文本框中的文字赋给strChar 判断是否是字母字符 If UCase(strChar) = “A” A
7、nd UCase(strChar) = “0” And strChar = “9” Then Text2.Text = “数字” Else Text2.Text = “其他字符” 对其他字符的处理 ENDIFEnd Sub,2020/10/20,9,清华大学出版社,4.2.4 If语句的嵌套格式1:If Then If Then else End If else End If,【例4.4】已知x、y、z 3个数,比较它们的大小并排序,使得xyz。程序运行效果,格式2: If Then else If Then else End If End If,2020/10/20,10,清华大学出版社,4
8、.2.5情况语句 : 1.情况语句格式为Select Case Case Case Case Else End Select其中:可以是数值型或字符串表达式。:必须与的类型相同,可以是表达式、一组用逗号分隔的枚举值、表达式1 to 表达式2、Is关系运算符表达式,并且这几种表达式形式可以混用。多个表达式列表间用逗号分隔。,2020/10/20,11,清华大学出版社,可以是同类型的下面三种形式之一:, 一组枚举表达式(用逗号分隔) 例:2,4,6,8 或 ”A”,”B”,”C”,”D” 表达式1 To 表达式2 60 To 100 或 “A” To “Z” Is 关系运算符表达式,适用的运算符包
9、括,=,= 如: Is 10 And Is10 是不合法的。(4)Case子句的顺序对执行结果没有影响,Case Else子句必须放在所有的Case子句之后。,2020/10/20,12,清华大学出版社,【例4.5】已知输入某课程的百分制成绩Score,要求显示对应五级制的评定。评定级制条件:,2020/10/20,13,清华大学出版社,方法一,Private Sub Command1_Click()score = Val(Text1.Text) Select Case score Case 90 To 100 grade = 优秀 Case 80 To 89 grade = 良好 Case
10、70 To 79 grade = 中等 Case 60 To 69 grade = 及格 Case 0 To 59 grade = 不及格 Case Else grade = 输入成绩无效 End SelectText2.Text = gradeEnd Sub,Private Sub Command1_Click()score = Val(Text1.Text) Select Case score10 Case 9, 10 grade = 优秀 Case 8 grade = 良好 Case 7 grade = 中等 Case 6 grade = 及格 Case 0 To 5 grade = 不
11、及格 Case Else grade = 输入成绩无效 End SelectText2.Text = gradeEnd Sub,方法二,2020/10/20,14,清华大学出版社,4.2.6 IIf函数(条件函数) 函数形式: IIf(,)例如:求X、Y中大的数,并将大数放入变量iMax中。iMax=IIf(XY, X, Y)根据表达式的值,返回两部分中的一个。4.2.7常见错误1.在选择结构中缺少配对的结束语句 对多行式的If块语句中,应有配对的 EndIf语句结束。2. 多分支结构ElseIf关键字的书写和条件表达式的表示 应注意多个条件表达式次序以及ElseIf 不要写成Else If。
12、3. Select Case语句的使用 Select Case 后不能出现多个变量,Case子句后不能出现变量。,2020/10/20,15,清华大学出版社,4.3循环结构 vb中循环的3种结构即 计数循环(For - Next循环)当循环(While - Wend循环)Do循环(Do Loop循环)。 4.3.1 For循环控制结构语句格式:,For = To Step Exit For Next ,For语句执行流程如左图所示:,2020/10/20,16,清华大学出版社,说明:(1):必须为数值型。(2):一般为正,初值小于终值;若为负,初值大于终值;默认步长为1。(3):可以是一句或多
13、句语句,称为循环体。(4)Exit For:表示当遇到该语句时,退出循环体,执行Next的下一条语句。(5)循环次数=int( - )/+1)(6)退出循环后,循环变量的值保持退出时的值。(7)在循环体内对循环变量可多次引用,但不要对其赋值,否则影响结果。,2020/10/20,17,清华大学出版社,【例4.6】计算1N之间的奇、偶数之和(N为自然数)。,Private Sub Command1_Click()Dim i As Long, sum1 As Long, sum2 As Long sum1 = 0 sum2 = 0 For i = 0 To Text1.Text Step 2 计算
14、偶数和 sum2 = sum2 + i Next i For i = 1 To Text1.Text Step 2 计算奇数和 sum1 = sum1 + i Next i Text2.Text = sum1 Text3.Text = sum2End Sub,2020/10/20,18,清华大学出版社,4.3.2 While循环控制结构While循环用于不知道循环次数,但可以用一个条件来进行判断是否结束。格式: While Wend,执行流程如左图所示:当给定的条件成立时,执行循环中的“语句块”,否则退出While循环,执行Wend后面的语句。,2020/10/20,19,清华大学出版社,【例
15、4.7】从键盘上输入字符,对输入的字符进行计数,当输入的字符为“#”号时,停止计数,并输出结果。,Private Sub Form_Click() Dim Char as String Const Ch$=Counter=0 Msg$=请输入一个字符:Char=InputBox$(Msg$)While Char Ch$ Counter= Counter+1 Char=InputBox$(Msg$)WendPrint 输入字符串的个数为:;Counternd sub,2020/10/20,20,清华大学出版社,4.3.3 Do 循环控制结构Do循环语句有两种语法形式:一种是先判定条件的,称为当型
16、循环结构;另一种是后判定条件的,称为直到循环结构。其流程见下图:,Do While .Loop,Do Until .Loop,格式1: 前测型Do While | Until Exit Do Loop,2020/10/20,21,清华大学出版社,说明:(1)格式1为先判断后执行,有可能一次也不执行。(2)格式2为先执行后判断,至少执行一次。(3)关键字While 用于指明条件为真时就执行循环体中的语句,Until刚好相反。(5)Exit Do语句可以提前退出循环,执行Loop的下一条语句。,格式2:后测型 Do Exit Do Loop While | Until ,Do .Loop While,Do .Loop Until,2020/10/20,22,清华大学出版社,双击窗体中【计算年数】按钮,为Co