




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、控制语句课件控制结构控制语句课件Visual Basic提供的控制结构有以下四种:(1)顺序结构;(2)分支结构(也称为“选择结构”);(3)循结结构;(4)跳转结构。分支结构:If语句、Select Case语句;循环结构:DoLoop语句、ForNext语句、WhileWend语句;跳转结构:GoTo语句、GoSub语句。控制语句课件If 条件语句 这两种形式的If语句在执行流程方面是相同的。 如果“条件表达式”的值为 True ,则执行“语句块”,否则跳过“语句埠”,直接执行随后的语句。 “语句块”可以是一条语句,多条语句。对于单行形式,多条语句必须使用“:”隔开写在同一行上。 例:下面
2、双种形式功能相同。单行形式: If i Mod 2 = 0 Then Print 偶数块形式:If i Mod 2 = 0 Then Print 偶数 语句块End If单行形式的IfThen 语句条件语句块TrueFalse块行形式的IfThen End If语句If 条件表达式 Then 语句块 If 条件表达式 Then语句块 End If控制语句课件If 条件表达式 Then 语句组1Else 语句组2End If 如果“条件表达式”的值为 True ,则执行“语句块1”;否则,执行“语句块2”。“语句组1”与“语句组2”中至少有一组被执行,然后继续执行随后的语句。 例: If i M
3、od 2 = 0 Then Print 偶数 语句块1 Else Print 奇数 语句块2 End If单行形式的IfThenElse 语句条件语句块1TrueFalse语句块2If 条件表达式 Then 语句块1 Else 语句块2 块形式的IfThenElseEnd If 语句打开【例5.1】控制语句课件在 If 语句的“If语句块”和“Else语句块”中还可以包含另一个 If 语句。如:.If 条件1 Then .If 条件2 Then .Else.End If.Else.If 条件3 Then .Else.End If.End IfIf 语句的嵌套控制语句课件【例5.2】判断输入数的
4、奇偶性及所在的区间。Private Sub cmd1_Click( )Dim int1 As Integer, int2 As Integer : int1=Cint(txt1.Text)If int1100 Thentxt2.Text=这是一个大于100的偶数!Elsetxt2.Text=“这是一个不大于100的偶数!End IfElseIf int1 100 Thentxt2.Text=这是一个大于100的奇数!Elsetxt2.Text=这是一个小于100的奇数!End IfEnd IfEnd IfEnd Sub控制语句课件这是一种多重分支结构,比使用嵌套的If语句更容易理解。IfThe
5、nElseIfEnd If语句If 条件1 Then语句块1ElseIf 条件2 Then 语句块2ElseIf 条件3 Then 语句块3ElseIf 条件n Then 语句块nElse语句块n+1End If 从上到下,第几个条件表达式值为True,就执行相应的第几个语句块,然后执行End If下面的语句。如果有不只一个条件表达式的值为True,只有最上面的条件所对应的语句块被执行。如果所有条件表达式的值均不为True,则执行Else关键字下面的“语句块n+1”,然后执行End If下面的语句。其中Else和“语句块n+1”是可选部分。 注意:“ElseIf”关键字中间没有空格,不是“El
6、seIf”。控制语句课件Select Case 测试表达式Case 表达式1语句块1Case 表达式2语句块2 . Case 表达式n语句块nCase Else语句块n+1End Select Select Case语句中包含一个类型为数值或字符串的“测试表达式”,开始时计算一次此表达式的值,然后用这个值与各个Case语句之后的“表达式X”比较,如果二者匹配,则执行该Case之后的语句块,然后执行End Select之后的语句。如果“测试表达式”中的值与“表达式X”中的多个相匹配,则只执行第一个相匹配的Case之后的语句块。如果没有相匹配的,则执行Case Else之后的语句。没有Case E
7、lse语句,则直接执行End Select 之后的语句。Select Case 多重分支语句控制语句课件Select Case语句中的“匹配”包括“精确相等”和“在指定区间内”两种情况。具体使用的是哪种情况,由Case后面“表达式”的给定方式决定。Case后面“表达式”的形式可以是以下4种情况之一:1单个常量、变量或表达式如:Case 90和Case Tom。这种情况下,如果测试表达式的值与给出的值相等就认为匹配。2使用关键字“To”连接的两个值如:Case 1 To 5和Case A To C。这种情况下,关键字“To”连接两个值表示值的范围(闭区间),如果测试表达式的值属于这个区间则认为匹
8、配。3使用“Is”关键字、比较运算符和数值、字符串构成的表达式如:Case Is = 80和Case Is 。这种情况表示一个开区间,如果测试表达式的值属于该区间便认为匹配。4以上三种的组合形式(使用逗号分隔)如:Case 6, 8 To 9, Is 12。这种情况下,只要由逗号分开的多项中有任何一项与测试表达式匹配,就认为匹配。关于“匹配”的定义打开【例5.6】打开【例5.7】控制语句课件1 “当循环”的第一种形式:Do While 条件表达式 语句块Loop2 “当循环”的第二种形式:Do 语句块Loop While 条件表达式两种循环共同的特点是:当每次计算“条件表达式”的值为True或
9、非零数值时,循环执行“语句块”;当“条件表达式”值为False或零值时,跳出循环,执行Loop语句后别的语句。二者不同的是:第一种形式,如果条件表达式第一次计算“条件表达式”就为False,则“语句块”不会被执行;第二种形式中,条件测试在后,所以“语句块”至少被执行一次。条件语句块TrueFalseDo While Loop形式条件语句块TrueFalseDo While Loop形式Do Loop循环语句控制语句课件3 “直到型循环”的第一种形式:Do Until 条件表达式语句块Loop4 “直到型循环”的第二种形式:Do 语句块Loop Until 条件表达式 “直到型循环”与“当循环”
10、不同点是:当每次计算“条件表达式”的值为False或零数值时,循环执行“语句块”;当“条件表达式”值为True或非零值时,跳出循环,执行Loop语句后别的语句。 “直到型循环”的两种不同形式的区别和“当循环”相同:第一种形式中的“语句块”有可能一次都不被执行到;第二种形式中的“语句块”至少被执行一次。条件语句块FalseTrue条件语句块FalseTrueDo UntilLoop形式Do Loop Until形式控制语句课件5 Do Loop形式:Do语句块Loop 这种形式是一种“条件永远成立”的循环,需要使用Exit Do语句强制跳出循环。Exit Do 语句 Exit Do语句必须放置在
11、DoLoop语句的循环体中。执行到Exit Do时,程序会立即结束循环,跳到Loop后面执行下面的语句。当有多个循环嵌套使用时,Exit Do语句只跳出所在的最内层的DoLoop循环。 Exit Do语句不只可以用来结束不使用While和Until关键字的DoLoop语句,也可以用在使用了While或Until关键字的“当型循环”或“直到型循环”中。 如果在运行时发生了“死循环”,可以使用Ctrl+Break组合键返回调试状态,再返回设计状态。控制语句课件For 计数器变量 = 起始值 To 终止值 Step 增量语句块(循环体)Next 计数器变量 For Next 循环语句使用一个“计数器
12、”变量控制循环,这个变量不能是逻辑值或数组元素,此语句每次自动给计算器变量增加一个“增量”,如果变量的值超出给定的“终止值”,则退出循环,否则会重复执行“语句块”。第一次运行“语句块”时,只进行比较,不改变变量的值。 当“增量”是正值或零时,变量的值大于“终止值”时退出循环,当为负值时,变量量的值小于“终止值”时退出。如果 “Step 增量”省略,按增量为1处理。循环体TrueFalse给“计数器变量”赋以“初始值”“计数器变量”是否超过“终止值”?给“计数器变量”增加“增量”For Next 循环语句 一般地,当事先可以确定循环次数时,使用ForNext语句,否则应使用DoLoop循环。控制
13、语句课件Exit For 语句 就像使用Exit Do语句可以强制跳出DoLoop循环一样,对于ForNext循环,可以在循环体中使用Exit For语句,当程序执行到Exit For语句时立即终止循环,跳到Next下面的语句继续执行。与Exit Do类似,Exit For语句只能用在Exit For循环中,并且只能跳出所在的最内层ForNext循环。ForNext循环的“终止值”和“步长”问题 特别值得注意的是,对于ForNext语句来说,一旦进入循环,其“终止值”和“增量”便不会再改变了。例如,在下面的程序段中,循环的“终止值”和“增量”是由变量j和k的值决定的。虽然在循环体中改变了这两个
14、变量的值,但是并不会影响循环次数(10次),“终止值”和“增量”仍然是进入循环时两个变量的值,分别是10和1。 1 Dim i As Integer, j As Integer, k As Integer 2 j = 10: k = 1 3 For i = 1 To j Step k 4 Print i 5 j = j - 1 6 k = k + 1 7 Next 8 Print j, k控制语句课件练习:分析下面程序段结束时窗体上显示的值是多少?(2)i2=0For i = 1 To -2 Step -1i2 = i2+1NextPrint i , i2(-3 4)(1)For i = 1
15、To 10 i2 = i2+1NextPrint i(11)(3)i2=0For i = 1 To 5 Step 2i2 = i2+1NextPrint i(7)(4)i2 = 1For i = 1 To 10i = i + 1i2 = i2 + 1NextPrint i, i2(11 6)(5) i2 = 1i3 = 10i = 10For i = 1 To i3i = i + 1i2 = i2 + 1i3 = i3 + 1NextPrint i, i2(11 6)(6)i2 = 0For i = 1 To 10 i2 = i2 + 1 If i 6 Then Exit ForNextPri
16、nt i, i2(7 7)(7) i2 = 0i = 10Do i2 = i2 + 1Loop While i = i2Print i2(1)控制语句课件(1)嵌套的层数不限;(2)内层控制结构必须完全位于外层的一个语句块中;(3)多个ForNext语句嵌套时,不能重复使用同一个“循环计数器变量”;(4)为了便于阅读与排错,内层的控制结构应向右缩进。正确的嵌套:循环的嵌套错误的嵌套:控制语句课件 Exit Do语句用于强制结束Do循环,当有多个Do循环嵌套时,只跳出该语句所在的最内层循环并执行对应Loop之后的语句。同理,Exit For语句用于强制结束For循环,当有多个For循环嵌套时,只
17、跳出该语句所在的最内层循环并执行对应Next之后的语句。 当Do循环与For循环嵌套使用时,如果Exit Do语句处于Do循环中的一个For循环中,Exit Do语句同时会跳出For循环。同理,如果Exit For处于一个For循环内的Do循环中,程序不但跳出当前的For循环,而且会跳出正在执行的处于For循环内部的Do循环。Exit Do和Exit For语句在循环嵌套时的作用控制语句课件 当程序中有控制结构的互相嵌套时,其执行流程仍严格按照每个控制结构既定的流程进行。下面以两重ForNext嵌套为例,演示循环嵌套时的执行流程。多重嵌套的道理是相同的。 循环嵌套的执行流程 1 Private
18、 Sub Form_Click() 2 Dim i As Integer, j As Integer 3 For i = 1 To 3 4 Print i=; i 5 For j = 1 To 3 6 Print Tab; j=; j 7 Next 8 Next 9 End Sub 从这段程序的执行情况可见,外层循环执行一次(如i = 1),内层循环要从头循环一遍(如j = 1、j = 2、j = 3)。控制语句课件在同一对象或同一个用户定义类型变量上执行一系列的语句。 With 对象名或自定义类型变量名 语句块(可以省略其中的对象名或变量名) End WithWith 语句可以对某个对象执行
19、一系列的操作(如设置属性值、调用方法),而不用重复指出对象的名称。例如:cmd1 .Height = 2000cmd1 .Width = 2000cmd1 .Caption = Hellocmd1 .Move 0,0With cmd1.Height = 2000.Width = 2000.Caption = Hello.Move 0,0End With注意: 一个With语句只能用于一个对象,如果一个对象属于另一个对象,可以使用嵌套的With 语句。不要跳入或跳出 With 块。如果在 With 块中的语句被执行,但是 With 或 End With 语句并没有执行,则会产生错误,或不可预知的
20、结果。With 语句控制语句课件Private Sub cmd2_Click()Form1.Height = 2000Form1.Width = 2000Form1.Caption = HelloForm1 .Move 0, 0Form1.cmd1.Height=1000Form1.cmd1.Width=1000Form1.cmd1.Caption=OKForm1.cmd1.Move 0, 0End SubPrivate Sub cmd2_Click()With Form1 .Height = 2000 .Width = 2000 .Caption = Hello .Move 0, 0 Wit
21、h .cmd1.Height=1000.Width=1000.Caption=OK .Move 0, 0 End WithEnd WithEnd SubWith语句的嵌套控制语句课件【例5.15】求一元二次方程的根。一元二次方程的根有下列三种情况:(1)当a=0、b=0时,方程无解;(2)当a=0、b0时,方程只有一个实根;(3)当a0时,方程有两个根(两个实根或两个虚根)【例5.16】验证质数。 如果一个整数n只能被1和n整除,则n为质数。质数又称为素数,规定1不是质数,2是质数。本程序验证从文本框中输入的正整数是否为质数。在窗体上的文本框txtInput中输入任一大于3的正整数n,然后单击
22、按钮cmdPrime,文本框txtOutput中显示出“n是质数”或“n不是质数”。 判断n是否为质数比较简单的方法是:用n逐个除以2n-1之间的每个整数,只要有一个可以整除,则说明n不是质数;如果全部不能整除,则说明n是质数。【例5.17】求水仙花数。 “水仙花数”是指一种三位整数,它各位数字的立方和等于该数本身。编程将所有的水仙花数显示在窗体上,并在文本框中显示个数(水仙花数共有4个:153、370、371和407)。控制结构的应用控制语句课件【例5.18】求Fibonacci(菲邦纳契)数列第n项的值。 已知Fibonacci数列为:1,1,2,3,5,8,。该数列第一项和第二项均为1,
23、从第三项开始,每一项都是前面两项的和。 除了数列的前两项之外,其他项可用迭代法求得。控制语句课件【例5.19】使用级数求的值。 根据下式,计算圆周率的近似值,当计算到绝对值小于0.0001的通项时,认为满足精度要求,停止计算。NoImage 本例的两个重点是:(1)对于需要进行“无限次”计算的情况,如何利用给定的“精度”在适当的时刻结束计算。(2)如何使程序编制得代码简单,运行效率高。解法一:Private Sub cmdPi_Click() Dim a As Single Dim m As Single Dim n As Integer n = 1 Do m = 1 / (2 * n - 1
24、) a = a + (-1) (n + 1) * m n = n + 1 Loop While m = 0.0001 Text1.Text = a * 4 End SubPrivate Sub cmdPi_Click() Dim a As Single Dim m As Single Dim s As Integer Dim i As Integer s = 1 : i = 1 Do m = 1 / i a = a + s * m i = i + 2 s = -s Loop While m = 0.0001 Text1.Text = a * 4 End Sub解法二:控制语句课件【例5.20】
25、将一角钱换成零钱(可以包括含1分、2分、5分中的任意多个面值),共有多少种换法? 组成一角的零钱中,最多有10个1分、5个2分、2个5分。判断所有的组合中,总和正好是一角(10分)的情况有多少次即为所求。这类方法称为“穷举法”,也称为“列举法”。 Private Sub Command1_Click() Dim i As Integer, j As Integer, k As Integer Dim n As Integer Print 1分个数, 2分个数, 5分个数 For i = 0 To 10 For j = 0 To 5 For k = 0 To 2 If i + j * 2 + k * 5 = 10 Then n = n + 1 Print i, j, k End If Next Next Next Print 共有 & n & 种方法 End Sub控制语句课件Private Sub cmdCalc_Click() Dim x1 As Single, x2 As Single, x3 As Single x1 = 0 x2 = 2 Do
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量安全系统培训课件
- 质量安全生产培训制度课件
- 2025年中国水性木器漆项目创业计划书
- 2025年中国水解羽毛粉项目创业计划书
- 红细胞增多症监测指南
- 中国明胶项目投资计划书
- 中国玻璃腻子项目投资计划书
- 2025年中国普鲁兰糖项目商业计划书
- 基础护理真题卷子及答案
- 2025年语文作文练字试卷及答案
- 第10课《美丽的颜色》课件-2025-2026学年统编版语文八年级上册
- 运动损伤的预防与处理教学教案
- 肌张力低下型脑性瘫痪
- 2025至2030全球及中国纸浆模塑包装行业项目调研及市场前景预测评估报告
- 护理用药错误PDCA案例
- 香道培训课件
- 燃气餐饮安全培训课件
- 2025至2030中国膝关节支持器行业项目调研及市场前景预测评估报告
- 心悸症状护理课件
- 中医诊所消防管理制度
- 河道施工船舶管理制度
评论
0/150
提交评论