五章节控制结构与循环结构程序设计教学讲义

上传人:yuzo****123 文档编号:137605570 上传时间:2020-07-10 格式:PPT 页数:44 大小:358.50KB
返回 下载 相关 举报
五章节控制结构与循环结构程序设计教学讲义_第1页
第1页 / 共44页
五章节控制结构与循环结构程序设计教学讲义_第2页
第2页 / 共44页
五章节控制结构与循环结构程序设计教学讲义_第3页
第3页 / 共44页
五章节控制结构与循环结构程序设计教学讲义_第4页
第4页 / 共44页
五章节控制结构与循环结构程序设计教学讲义_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《五章节控制结构与循环结构程序设计教学讲义》由会员分享,可在线阅读,更多相关《五章节控制结构与循环结构程序设计教学讲义(44页珍藏版)》请在金锄头文库上搜索。

1、第五章 控制结构与循环结构程序设计,结构化程序设计的基本控制结构有3种: 顺序结构:程序中的每一步操作从上到下顺序执行; 选择结构:根据给定的条件,选择一个分支执行; 循环结构:根据给定的条件,重复执行。,5.1 选择控制结构,产生背景:需要根据给定的条件进行分析、比较和判断,并根据判断结果采取不同的操作。 在VB中,选择结构通过条件语句来实现。条件语句也称为IF语句,有两种格式,一种是单行结构,一种是块结构。,5.1.1 单行结构条件语句,格式:If 条件 Then 语句1 Else 语句2 功能:如果条件成立,执行语句1,然后执行If语句的下一条语句;如果有Else 语句2的可选部分,条件

2、不成立时执行语句2,然后执行If语句的下一条语句;如果条件不成立且没有可选部分,则直接执行If语句的下一条语句。 举例: If ab Then Print ab If a/3=int(a/3) Then Print a能被3整除 If a/3=int(a/3) Then Print a能被3整除 Else Print a不能被3整除 If Mpass Then Print 通过考试,说明: 条件的结果是一个逻辑值,即真与假。如果一个变量的数据类型为布尔型,则根据要求可以直接在条件处写变量或者写“Not 变量”。 例如: 通过考试的人,打印“英语4级通过” If Mpass Then Print

3、 英语4级通过 没通过考试的人,打印“英语4级未通过” If Not Mpass Then Print 英语4级未通过,5.1.2 块结构条件语句,格式:If 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2 ElseIf 条件3 Then 语句块3 . ElseIf 条件n Then 语句块n Else 语句块n+1 End If,功能:如果条件1成立,执行语句块1(语句块意为多条语句);条件1不成立,测试条件2,如果条件2成立,执行语句块2;一直这样执行下去,到最后一个条件n测试成立,执行语句块n,不成立执行语句块n+1。 说明: 在执行了Then或 Else后面的语句

4、块之后,程序退出块结构条件语句,继续执行EndIf后面的语句。 语句块中的语句不能与Then放在同一行上,这也是块结构和单行结构条件语句的主要区别。 在块结构的条件语句中,Else子句的数量没有限制。 块结构条件语句中的ElseIf子句和Else子句都是可选的。 当有多个条件为True时,只能执行满足条件的第一个语句块,且执行完后跳出If结构。 块形式的条件语句也可以嵌套。,举例: 如果成绩大于等于60,显示成绩及格;否则,显示成绩不及格。,Private Sub Command1_Click() mcj = InputBox(输入成绩) mcj = Val(mcj) If mcj = 60

5、Then Print 成绩及格 Else Print 成绩不及格 End If End Sub,举例: 如果成绩大于100,显示“成绩错误”;在90-100之间,显示“成绩优秀”;80-89之间,显示“成绩良好”;60-79之间,显示“及格”;0-59之间,显示“不及格”。,Private Sub Command1_Click() mcj = InputBox(输入成绩) mcj = Val(mcj) If mcj 100 Then Print 成绩错误 ElseIf mcj = 90 Then Print 成绩优秀,ElseIf mcj = 80 Then Print 成绩良好 ElseIf

6、 mcj = 60 Then Print 及格 Else Print 不及格 End If End Sub,5.1.3 IIf函数用来执行简单的判断操作,格式:result=IIf(条件,表达式1,表达式2) 功能:如果条件成立,返回表达式1的值,否则返回表达式2的 值。 说明: result是函数的返回值,“条件”是一个逻辑表达式。 IIf函数中的3个参数都不能省略,且要求表达式1、表达式2和结果变量的类型一致。,举例: 如果成绩=60,给变量赋值“及格”,否则赋值“不及格”。 Mchr=IIf(Mcj=60,及格,不及格) 如果成绩=90,给变量赋值“优秀”,如果成绩=60,给变量赋值“及

7、格”,否则赋值“不及格”。 Mchr=IIf(Mcj=90,优秀,IIf(Mcj=60,及格,不及格),5.2 多分支控制结构-情况语句,产生背景:根据给定条件从多个分支路径中选择执行其中的一个。在VB中,多分支控制结构通过情况语句来实现。 格式:,Select Case 测试表达式 Case 表达式表列1 语句块1 Case 表达式表列2 语句块2 Case Else 语句块n End Select,功能:计算表达式的值,如果表达式的值和Case项中的值相等,则执行相应的语句体。执行完语句体后,执行End Select。如果没有合适的项,执行Case Else后面跟的语句体。 注意: 1、

8、Case后面的值(表达式表列1、2n)称为值域,可以是下列形式之一:,表达式,表达式,. 如果Select Case后的表达式的值是是上面表达式表中的一个值,进入此处。 例如:Case 讲师,副教授,教授 表达式1 To 表达式2 如果Select Case后的表达式的值是是上面两个表达式值之间的值,进入此处。 表达式1的值必须=60 错误的用法:Case Is=60 And Is=100 可以上述方法混用 例如:Case IsL,S,Q,X To Z,Private Sub Command1_Click() Select Case Val(Text1.Text) Case 1 To 5 La

9、bel1.Caption = 工作日 Case 6, 7 Label1.Caption = 休息日 Case Else Label1.Caption = 错误 End Select End Sub Private Sub Command2_Click() End End Sub,举例: 窗体上有一个文本框,输入1-5,标签框显示工作日,输入6-7,标签框显示休息日,输入其他为错误。,2、Select Case语句和IfThenElse语句的主要区别:, Select Case语句只对单个表达式求值,并根据求值结果执行不同的语句块,而块形式的条件语句可以对不同的表达式求值,因而效率较高。 3、当

10、条件范围重叠时,例如:第一个case 的条件是Is1,第二个case 的条件是Is3,如果表达式的结果两个case都符合,只执行位置在前面的case里的命令。 4、当条件范围不重叠时,Case子句的顺序对执行结果没有影响,但 Case Else子句必须放在所有的Case子句之后。 5、如果Select Case结构中的任何一个Case子句都没有与测试表达式相匹配的值,而且也没有Case Else子句, 则不执行任何操作。 6、不同的Case子句中制定的条件和相应的操作不能相互矛盾。,5.3 For 循环控制结构,产生背景:一些问题并不复杂,但需要反复多次处理,用顺序结构的程序来处理比较繁琐,甚

11、至难以实现。为此,VB提供了循环语句。 VB提供了3种不同风格的循环结构,包括: 计数循环(For-Next循环) 当循环(While-Wend循环) DO循环(Do-Loop循环),For循环也称为For-Next循环或计数循环,格式:For 循环变量=循环初值 To 循环终值 Step 循环步长 循环体 Exit ForNext 循环变量 功能:以指定次数来重复执行一组语句。 参数说明如下: 循环变量:也称循环控制变量、控制变量或循环计数器。它是一个数值变量,但不能下标变量或记录元素。 初值:循环变量的初值,它是一个数值表达式。 终值:循环变量的终值,也是一个数值表达式。,步长:循环变量的

12、增量,是一个数值表达式,可以是正数或负数,但不能为0。 循环体:在For语句和Next语句之间的语句序列,可以是一个或多个语句。 Exit For: 退出循环 Next:循环终端语句,在Next后面的“循环变量”与For语句中的“循环变量”必须相同。 注意:格式中的初值、终值、步长均为数值表达式,但其值不一定是整数,可以是实数。,执行过程如下: 第一步:循环变量赋循环初值。 第二步:如果循环步长0,测试循环变量初值是否大于循环终值;如果循环步长0,测试循环变量初值是否小于循环终值。步长默认为1。 是,转到Next的下一句运行。(退出循环) 否,运行循环体。 如果循环体中有Exit For语句,

13、运行到此句,直接转向Next语句的下一句运行。(退出循环) 运行到Next语句,循环变量=循环变量+步长。 转到第二步开始处运行。(循环一次完成),注意: 步长为负时,循环变量每加一次步长,值变小。步长为零时,循环变量值不变,因此循环体内如果无Exit For 语句,则进入死循环。在设计时运行程序进入死循环可以使用Ctrl+Break,终止程序执行。 在For循环语句中,For 和 Next是一对语句,必须成对出现,缺一不可。 可以嵌套使用,但是循环变量名必须使用不同的变量名,而且不可以书写交叉的For循环语句。 例如:,下面属于错误的嵌套 For i=1 To 9 For j=1 to 9

14、Print i,j Next i Next j 正确的嵌套方式 For i=1 To 9 For j=1 to 9 Print i,j Next j Next i,当几个Next语句之间无任何其他语句时,可以合并成为一句,Next后面跟上所有的合并的语句中的循环变量名称,但顺序不能随便改动,变量名称之间用逗号分隔,且此处的循环变量不可以省略。例如上面程序最后的2个Next语句可以写成:Next j,i 当循环终值是一个变量时,在循环第一次运行时取走变量中的值,此变量中的值就不会再影响循环了,下面的程序,循环5次。,Private Sub Command1_Click() Mcs = 5 For

15、 i = 1 To Mcs Mcs = Mcs + 1 Print i, Mcs Next i End Sub,循环变量用来控制循环过程,在循环体内可以被引用和赋值。当循环变量在循环体内被引用时,称为“操作变量”,而不被引用的循环变量称为“形式变量”。 有些情况下,需要在循环变量到达终值前退出循环,这可以通过Exit For语句来实现,它可以出现在循环体的任何位置。但是, Exit For只能退出当前循环(它所在的循环)。 For-Next中的“循环体”是可选项,当该项缺省时, For-Next 执行空循环。,例:请计算n的阶乘。,Private Sub Command1_Click() a

16、= Val(Text1.Text) m = 1 For i = 1 To a m = m * i Next i Label1.Caption = Trim(Text1.Text) + 的阶乘为 + Str(m) End Sub,例:请计算1到n的连续求和,Private Sub Command1_Click() a = Val(Text1.Text) m = 0 For i = 1 To a m = m + i Next i Label1.Caption = 从1到 + Trim(Text1.Text) + 的和为 + Str(m) End Sub,5.4 当循环控制结构,产生背景:循环次数不固定,当满足条件时退出循环。(For循环解决不了这类问题) 格式: While 条件 语句块 Wend 功能:按照条件是否成立执行循环。操作如下: 第一步:测试条件。 第二步:当结果为真,执行语句块,执行完语句块,遇到Wend,转向While语句,重新到第一步测试条件,进行下一次循环;如果结果为假,转到Wend语句的下一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号