当前位置:文档之家› VB公开课电子课件

VB公开课电子课件


课前回顾
5、执行下列程序段后,x的值为( ) Dim x As Integer If x=0 Then x=5 If x=5 Then x=x+2 If x>5 Then x=x+1 B.8 A.0 C.6 D.程序出错
第五章 循环结构程序设计
本章内容
一、循环结构的基本概念 二、Do...Loop语句 三、For...Next语句 四、While...Wend循环结构 五、列表框和组合框 六、常用算法介绍
知识总结
1.当型前测型与当型后测型的比较
Do While 条件 循环体 Loop Do 循环体 Loop While 条件
当型前测型循环 执行循环体前测试条件
当条件真时执行循环体 当条件假时跳出循环体 可能不执行循环体
当型后测型循环 执行循环体后测试条件
当条件真时执行循环体 当条件假时跳出循环体 至少执行一次循环体
s=0 i=1 Do s=s+i i=i+1 Loop While i<=100 s=0 i=1 Do s=s+i i=i+1 Loop Until i>100
总结:通过上述两种方法,可以得知,后测型 循环都是先执行循环体,再判断条件,根据条 件决定是否执行循环体。 Do...Loop While是 当条件为True时才执行,而Do...Loop Until 是当条件为False时才执行。
二、DO...LOOP语句
开始 i=1 s=0
程序: s=0
s=s+1 i=i+1

i <=100?
否 输出s
结束
i=1 Do s=s+i i=i+1 Loop While i<=100 Print s
如果用Do...Loop Until来求 1+2+3+...+100的和,应何如修改 代码?
二、DO...LOOP语句
学习重点
一、掌握三种循环结构的语法格式及运用; 二、掌握两种控件的常用属性、方法和事件; 三、掌握多项累加和累乘的算法
一、循环结构的基本概念
在一些算法中,从某处开始,按照一 定条件,反复执行某一处理步骤的情况, 这就是循环结构。 循环结构由两部分组成: (1)循环体:反复执行的处理步骤 (2)循环控制部分:指定循环条件来 控制重复次数的语句。正常情况下,循环 次数必须是有限的。
说明:
1.后测型循环是先执行循环体,再判断条件, 根据条件成立与否决定是否执行循环体,这 种情况下,至少执行一次循环体。 2.当VB执行Do...Loop While循环时,若条 件为True,执行循环体,条件为False时退 出循环;当VB执行Do...Loop Until循环时, 若条件为False,执行循环体,条件为True 时退出循环。 3.在语句列中的任何位置都可放置Exit Do 语句,执行Exit Do语句时,就会退出循环。
二、DO...LOOP语句
执行过程:
1.先把初值赋给循环变量; 2.然后执行循环体,接着判断条件,若符合 条件,则继续执行循环体内语句,否则跳出 循环执行Loop后语句; 3.执行循环体时,若出现Exit Do语句,则 无条件跳出循环,执行Loop后语句; 4.要注意防止死循环的情况出现,若出现死 循环,可按Ctrl+Break键强行中断程序的运 行。
二、DO...LOOP语句
(2)后测型循环
循环体
Do [<语句列1>] 当型后测型 [Exit Do] [<语句列2>] Loop While <条件>
Do [<语句列 1>] 直到后测型 [Exit Do] [<语句列2>] Loop Until <条件>
满足条件? 是 否
二、DO...LOOP语句
总结:通过上述两种方法,可以得知,前测 型循环都是先判断条件,再根据条件决定是 否执行循环体。 Do While...Loop是当条件 为True时才执行,而Do Until...Loop是当 条件为False时才执行。
二、DO...LOOP语句
例题:求10以内的奇数的和。
Private Sub Form_Click() Do Until i>=10 Dim i As Integer Dim s As Integer i = 1 s = 0 Do While i < 10 如果用Do Until...Loop s = s + i 计算,应何如修改代码? i = i + 2 Loop Print s End Sub
课前回顾
1、假设a=6,执行语句x=IIF(a>5,-1,0) 后,x的值为( ) D.-1 A.5 B.6 C.0 2、设x=3.4,执行语句x=IIF(x<Int(x), x/3,x\2+5)后,x的值为( ) A.5 B.6 C.6.5 D.2
课前回顾
3、Private Sub Form_Click
二、DO...LOOP语句
例题:假设s=1×2×3×......×n,求s不大于 400000时的最大的n值和此时s的值。
Private Sub Command1_Click() Dim s As Long Dim n As Integer Loop Until s > 400000 s = 1 n = 0 如果用Do...Loop Until Do 计算,应何如修改代码? n = n + 1 s = s * n Loop While s <= 400000 Text1.Text = "n的值为" & Str(n - 1) & "," & "此时s的值为" & Str(s / n) End Sub
先判断 后执行 先判断指定的条件是否为成立,若 条件成立,执行循环条件,条件不 成立时退出循环。


后测型Do...Loop循环 先执行 后判断 先执行循环体,然后再检查条件是 否成立,如果不成立就重复执行循 环体,直到条件成立退出循环。
二、DO...LOOP语句
(1)前测型循环
循环体
Do While <条件> [<语句列1>] 当型前测型 [Exit Do] [<语句列2>] Loop
s=s+i i=i+1
s=s+i i=i+1
s=s+i i=i+1
s=s+i i=i+1
s=s+i i=i+1
s=0 i=1
s=1 i=2
s=3 i=3
s=6 i=4
s=10 i=5
s=15 i=6
二、DO...LOOP语句
s=0 i=1 Do While i<=100 s=s+i i=i+1 Loop s=0 i=1 Do Until i>100 s=s+i i=i+1 Loop
后测型至少执行一次循环体
思考:以上两个程序的输出结果一样吗?那么 s和i的值分别是什么? 不一样
二、DO...LOOP语句
例题:用前测型循环和后测型循环求5!的值。
程序界面截图
程序运行结果
随堂练习
1.如果以下程序运行后输出结果是720,那么 在程序中Until后面的条件应为( ) i=10 s=1 Do s=s*i i=i-1 Loop Until 条件 Print s A.i>8 B. i>=8
随堂练习
3.编写代码如下: Private Sub Command1_Click() Dim a%,b% a=10:b=20 Do Until a>10 程序运行后,单击命令按 b=b*a+a 钮后,输出的结果是( ) a=a+1 A.11 210 B.10 20 Loop C.11 410 D.10 410 Print a;b End Sub
二、DO...LOOP语句
i=10 s=0 Do While i<=2 s=s+i i=i+1 Loop s=0 Print s i=10 Print i
前测型不一定执行循环体
i=10 s=0 s=10 Do i=11 s=s+i i=i+1 Loop While i<=2 Print s Print i
Do Until <条件> [<语句列 1>] 直到前测型 [Exit Do] [<语句列2>] Loop
满足条件?


二、DO...LOOP语句
说明:
1.前测型循环是先判断条件,根据条件成立 与否决定是否执行循环体,这种情况下,循 环体有可能一次都不被执行。 2.当VB执行Do While...Loop循环时,若条 件为True,执行循环体,条件为False时退 出循环;当VB执行Do Until...Loop循环时, 若条件为False,执行循环体,条件为True 时退出循环。 3.在语句列中的任何位置都可放置Exit Do 语句,执行Exit Do语句时,就会退出循环。
二、DO...LOOP语句
例题:求1+2+…+100的值
开始
程序:
i=1 s=0
i=i+1 i<=100? 否
输出s 结束
s=0 i=1
s=s+i i=i+1 Loop
条件
Do While i<=100
循环体

s=s+i
Print s
二、DO...LOOP语句
如果用Do Until...Loop来求 1+2+3+...+100的和,应何如修改代码?
相关主题