visual basic (vb)第5章_2(循环语句)
计算机VB学习第5章-23页文档资料

上一页 下一页
第7页
返回本章首页
练习1:写出下面程序的运行结果
Private Sub Form_Click()
Dim a As Integer, i As Integer, j As Integer
a=0
For i = 1 To 5
For j = -2 To 2
a=a+i+j Next j Print a; Next i Print Print i, j, a End Sub
MsgBox "数据溢出,请重新输入",
vbOKCancel + vbInformation, “数据错误” 上一页
Text1.Text = "" Else
第5页
下一页 返回本章首页
n = CLng(Text1.Text)
k =Int(Sqr(n) ) m = 0 ‘ m是一个标记 :1—否,0—是 For i=2 To k
循环体 条件 True False
Do While <条件> …… [Exit Do] ……
Loop
循环体 条件 False True
第12页
Do Until <条件>
…
[Exit Do ]
…
上一页
Loop
下一页
返回本章首页
5.3 Do 循环------- 直到型循环
Do … [Exit Do] …
If n Mod k = 0 Then m = 1 Next i
If m = 0 Then Label2.Caption = “是一个素数”
Else Label2.Caption = “不是一个素数”
Visual Basic 程序设计基础知识-循环

WHILE循环结构一、语法结构WHILE <条件><循环体>WEND注:1.执行过程:先判断条件是否成立,如果成立就执行循环体(while与wend之间的语句);循环体执行完后,再判断条件是否依旧成立,如果成立继续执行循环体,否则退出循环,执行wend后的语句。
2.while-wend结构的循环必须在循环体内改变循环控制变量的值,否则会出现死循环例1 求s=2+3+……+100s=0:n=1while n<=00s=s+nn=n+1wendprint “s=”;s例2.如果我国工农业生产每年以12%速度增长,问多少年后产值翻一番:基值设为100。
(逐年计算产值,看是否达到200)p=100r=0.12n=0WHILE p<200p=p*(1+r)n=n+1WENDPRINT n,p例3.一张纸厚度为0.5毫米,问对折多少次后厚度超过8844米 n =0h = 0.5Do while h<=8844000h =2*hn =n+1LoopPrint nFor-next循环结构1、格式FOR <变量>=<初值> TO <终值> STEP <增量>循环体NEXT <变量>如: for i=1 to 10 step 2print inext i2、说明(1)FOR与NEXT必须配对;(2)FOR必须在NEXT的前面;(3)FOR中的循环变量与NEXT的变量一致;(4)步长为1时“ STEP 1”可省略;(5)循环终止的条件是循环变量赋值超过终值,而不是等于终值。
终止条件:当步长>0时,循环变量>终值当步长<0时,循环变量<终值当步长=0时,永不终止(6)循环次数的计算次数=(终值一初值)/步长+1(7)循环变量尽量用整型变量;(8)循环变量初值和终值、步长值均可以是正值、负值或零,也可是整数或小数;例题1for i=1 to 100print "a"next I例题2for I=1 to 100 step 2 s=s+Inext I例题3for I=100 to 1 step -5 print Inext i 例题4 百钱买白鸡For g=1 to 19For m = 1 to 31x=100-g-mif 5*g+3*m+x/3=100 thenprint g , m , xend ifNext mNext g。
清华大学VB经典教案第五节——循环结构程序设计

每循环一次,循环变量的值自动加一个
步长,然后判断循环变量的值是否“超 越”终值,如果“超越”,则结束循环,
否则进行下一次循环,用如图5-1所示
的流程图表示。
说明: (1)循环变量、初值、终值、步长都是数值类型; (2)步长可正可负,但不能为0,否则,循环将变成死循环或 无限循环;步长为1时,[Step <步长>]可以省略; (3)当初值小于终值时,步长为正;当初值大于终值时,步 长为负; 通过初值、终值、步长可以计算循环体的循环次数,计算公 式如下: 循环次数=Int((终值-初值)/步长)+1 注意:如果循环次数≤0,即当初值小于终值时,步长为负 ,或者当初值大于终值时,步长为正,则循环体一次都不执行。 (4)Exit For可以退出其所在层的For…Next循环,这一点在 多重循环中尤为重要。
分析:假设某个三位的正整数为n, 要判断n是否是“水仙花数”,关键是 要求出n的百位数字a、十位数字b和个 位数字c,即 百位数字a = n \ 100 十位数字b = n \ 10 Mod 10 个位数字c = n Mod 10
5.2 While…Wend循环 While…Wend循环用于循环次数未知的循环,其语法格式 如下: While <条件表达式> [<语句组>] Wend 当条件表达式的值为True时执行循环体,为False时结束 循环,用如图5-5所示的流程图表示。
入项;组合框是由文本框和列表框组合而成,因此,组合框 具有文本框和列表框的功能,既可以输入项也可以选择项,
但任意时刻最多只能选择一个项,选中的项将显示在组合框
中。
5.5.1 列表框 1.列表框的常用属性 (1)List属性 存放列表框中的所有项,是一个一维字符串数组,数组 名为List,下标为项的索引值,从上到下,第一个项的索引值 为0,第二个项的索引值为1,以此类推。 (2)ListCount属性 返回列表框中项的个数。 (3)ListIndex属性 返回当前选中项的索引值。若有多个项被选中,则返回 最后一个选中项的索引值;也可以给该属性赋一个整数值来选 中对应索引值的项;如果没有选中任何项,ListIndex属性值 为-1。 (4)Selected属性 判断列表框中的某个项是否被选中,选中为True,否则 为False。该属性是一个一维布尔或逻辑型数组,数组名为 Selected,下标为项的索引值。
Visual Basic程序设计第5章

x=x+2 s=s+x Loop Print "1~100所有偶数的和="; s End Sub
在循环体中应该有对循环条件进行修改的 语句,以免进入死循环。
中国农业出版社
Visual Basic 程序设计
第5章 循环结构程序设计
例5.6 人口增长问题。假设我国现有人口13亿,若年增 长率为1.5%,试计算多少年后我国人口增加到或超过 15亿;若年增长率为1.8%呢?
分析:人口增长的计算公式为:p=y(1+r)n。y为人 口初值,r为年增长率,n为年数。
中国农业出版社
Visual Basic 程序设计
End Sub
思考:Do…Loop While循环语句与Do While…Loop 循环语句的区别
中国农业出版社
Visual Basic 程序设计
第5章 循环结构程序设计
5.2.3 Do Until…Loop循环语句 Do Until…Loop循环语句又叫“直到型循环”语句。
1.Do Until…Loop循环语句的格式 Do Until <条件> [<循环体>] [Exit Do] Loop
1.Do…Loop While循环语句的格式 Do [<循环体>] [Exit Do] Loop while <条件>
2.Do…Loop While循环语句的执行过程: 先执行循环体,然后判断“条件”,根据
“条件”决定是否再次执行循环体。如果“条件” 成立(值为真),则再次执行循环体;如果某次 判断“条件”不成立(值为假),则退出循环。
VB循环语句

VB循环语句⼀、Do...Loop 语句当条件为 True 时,或直到条件变为 True 时,重复执⾏⼀个块中的命令。
语法Do [{While | Until} condition][statements][Exit Do][statements]Loop或者可以使⽤下⾯这种语法:Do[statements][Exit Do][statements]Loop [{While | Until} condition]Do Loop 语句的语法具有以下⼏个部分:部分描述condition可选参数。
或,其值为 True 或 False。
如果condition 是,则condition 会被当作False。
statements⼀条或多条命令,它们将被重复当或直到condition 为 True。
说明在 Do...Loop 中可以在任何位置放置任意个数的 Exit Do 语句,随时跳出 Do...Loop 循环。
Exit Do 通常⽤于条件判断之后,例如 If...Then,在这种情况下,Exit Do 语句将控制权转移到紧接在 Loop 命令之后的语句。
如果 Exit Do 使⽤在嵌套的 Do...Loop 语句中,则 Exit Do 会将控制权转移到 Exit Do 所在位置的外层循环。
Do...Loop 语句⽰例本⽰例⽰范如何使⽤ Do...Loop 语句。
内层的 Do...Loop 语句循环到第 10 次时将标志值设置为 False,并⽤ Exit Do 语句强制退出内层循环。
外层循环则在检查到标志值为 False 时,马上退出。
Dim Check, CounterCheck = True: Counter = 0 ' 设置变量初始值。
Do ' 外层循环。
Do While Counter < 20 ' 内层循环。
Counter = Counter + 1 ' 计数器加⼀。
第5章 基本的控制结构(循环)

结束
图5-7
“九九乘法表”运行结果
结束
循环嵌套要注意以下事项: (1)在多重循环中,各层循环的循环控制变 量不能同名。但并列循环的循环控制变量名
可以相同,也可以不同。
(2)外循环必须完全包含内循环,不能交叉。
结束
下面的循环代码正确吗? For I=1 To 100 For I=1 To 100 For J=1 To 10 For I=1 To 10 „„ „„
结束
5.3.5 循环的退出
在某些情况下,为了减少循环次数或便 于程序调试,可能需要提前强制退出循 环。VB为For„Next和Do„Loop循环语句 提供了相应的强制退出循环的语句。
结束
Exit For语句:
用于For„Next循环,在循环体中可以出 现一次或多次。当系统执行到该语句时, 就强制退出当前循环。
结束
格式1的两种形式: Do {while} <条件> [<循环体>] Loop Do
当条件为真时, 执行循环体语句
{until} <条件> 当条件为真时,终 [<循环体>] 止执行循环体语句 Loop 说明: 格式1是先判断条件是否为真,然后执行。
结束
F
条件是否为真?
T
条件是否为真?
T
循环体
F
循环体
图2-3
Do While „Loop执行流程
图2-4
Do
Until „Loop执行流程
结束
格式2的两种形式: Do [<循环体>] Loop {while} <条件> Do
[<循环体>] Loop {until} <条件> 说明: 格式2是先执行循环体语句,然后判断条件。
visual basic (vb)第5章_2(循环语句)解析

Visual Basic 程序设计
1 为什么要使用循环结构? 使用循环结构,上述程序可以修改为: Private Sub Form_Click() For I = 1 To 6 Print "**********" Next I End Sub 与前面的程序相比,循环结构使得程序更加 清晰,功能更加强大,修改也更加方便。
VB 程序设计基础课件 Visual Basic 程序设计
例题3 计算S=1!+2!+……+20!
Private Dim Dim S = For Sub Form_Click() S As Single, temp As Single I As Integer, J As Integer 0 I = 1 To 20 temp = 1 For J = 1 To I temp = temp * J Next J S = S + temp Next I Print "1!+2!+……20!=", S End Sub
例题5 输出乘法口诀—2
Private Sub form_Click() For I = 1 To 9 For J = 1 To I Print I;"*"; J; "="; I * J; ' 不换行 Next J Print ' 换行 Next I End Sub
Visual Basic 程序设计
例6 输出图形
Visual Basic 程序设计
Private Sub picture1_Click() Picture1.Cls ' 清除图片框 n = Val(InputBox("请输入行数")) For i = 1 To n Picture1.Print Tab(n + 1 - i); ' 控制打印起点 For j = 1 To 2 * i - 1 Picture1.Print "*"; Next j Picture1.Print For j = 1 To n - i Next i Picture1.Print Spc(1); End Sub
VB循环语句

s=s+1
Next i
s=s+a
Next a S= 8 A= 1
S=
I=
3
4
求1+2+3+……100的和
Dim i, S As Integer i=0 S=0 For i = 1 To 100 S=S+i Next i Print "s="; S
循环次数是:100 次 输出结果是:5050
For...Next 语句用于将语句块运行指定的次数
For 循环变量 = 初值 to 终值 Step (步长)
长
>0 初值<终值 =1 时,可省略 <0 初值>终值 =0 死循环
Do语句:格式
Do While 条件表达式 语句块 Loop
执行过程: 结果为TRUE 或者是FALSE
计算条件表达式的值,
结果为TRUE,则执行语句块 结果为FALSE,则退出循环
4<5 T S=S+2=6
6<5 F
练习:
x=1:y=4 Do While y>4 x=x*y y=y+1 Loop
x的值是多少
x=1:y=5 Do While y<7 x=x*y y=y+1 Loop
x的值是多少
x
5 30
y
6 7
X=1
X=30
过关题:
S=1 X=1:y=4 Do while y<=6 X=2
提示: 1、设i为鸡的数量,j为兔的数量 1<=i<=35 , 1<j<=23 ( 94\4=23) 2、i+j=35 i*2+j*4=94 以上两条件要同时满足即输出i,j 的值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual Basic 程序设计
趣味问题2
编程计算古代算术题: 公鸡五元一只;鸡母 三元一只;小鸡一元三只。百元买百鸡,问公 鸡、母鸡、小鸡各几只?
Visual Basic 程序设计
趣味问题1解答
Visual Basic 程序设计
1 为什么要使用循环结构? 但上述程序结构让人觉得烦琐,尤其是当 需要100行或1000 行 “ ********** ”的话,源 程序将变得很长。所以,在程序设计中,我们 需要使用循环结构,来进行一系列重复的动作。
在VB中,当需要对某一段程序反复执行多 次,且反复执行的次数是可以预知的或可以用 某种条件控制的,就可以使用循环结构。
以下程序段,每层循环各执行多少次?写出运行结果。 For I = 1 To 3 Print "######" For J = 1 To 2 Print "@@@@@@" Next J Next I
Visual Basic 程序设计
5 循环嵌套
例题3:计算S=1!+2!+3!+……+20!
分析 ■ 根据前面的经验,计算阶乘可以用循环结构完成, 计算阶乘的累加和也可以使用循环结构完成。 ■ 构造两重循环,外层循环实现累加,完成和的计 算;内层循环实现累乘,完成阶乘的计算。
Visual Basic 程序设计
例题2-4 用Do语句计算1+…+100
Private Sub Form_Click() Dim S As Integer, I As Integer S = 0 I = 0 Do S = S + I I = I + 1 Loop Until I > 100 Print "1+2+3+……+100=", S End Sub
■问题3:根据例题1,自己编写程序计算20!,与 计算累加和相比,计算阶乘时应注意什么问题?
Visual Basic 程序设计
例题2:七彩字 Private Sub Form_click() Dim i% Randomize For i = 1 To 1000 Form1.CurrentX = 500 + i Form1.CurrentY = 500 + i ForeColor = RGB(Int(256 * Rnd),
例6 输出图形
Visual Basic 程序设计
Private Sub picture1_Click() Picture1.Cls ' 清除图片框 n = Val(InputBox("请输入行数")) For i = 1 To n Picture1.Print Tab(n + 1 - i); ' 控制打印起点 For j = 1 To 2 * i - 1 Picture1.Print "*"; Next j Picture1.Print For j = 1 To n - i Next i Picture1.Print Spc(1); End Sub
Visual Basic 程序设计
趣味问题1
有一箱球(1到100个),如果一次数4个则 余2个,一次数5个则余3个,一次数6个正好,问 有多少个球?
Visual Basic 程序设计
5 循环嵌套
无论是For循环还是Do循环,它们的循环体中还再次可以 包含循环语句,这样就形成了循环嵌套(也叫多重循环)。在 VB中,For循环和Do循环可以互相嵌套。
Visual Basic 程序设计
1 为什么要使用循环结构? 使用循环结构,上述程序可以修改为: Private Sub Form_Click() For I = 1 To 6 Print "**********" Next I End Sub 与前面的程序相比,循环结构使得程序更加 清晰,功能更加强大,修改也更加方便。
循环嵌套的结构
内层循环必须完整地嵌套在外层循环之内,即内层循环 是外层循环体的一部分,内外层循环不能交叉。例如:
Visual Basic 程序设计
5 循环嵌套
循环嵌套的执行过程
多重循环的执行由里向外展开,即先执行内层循环,再执 行外层循环。例如,一个三重循环的执行过程与钟表的秒针、 分针和时针的运转类似。
④注意:
(1)For循环语句是先判断后执行。 (2)当退出循环后,循环变量的值保持退出时的值。 (3)在循环体内可多次引用循环控制变量,但最好不要给 它赋值,否则会影响原来的循环控制规律。
Visual Basic 程序设计
例题1 计算S=1+2+3+……+100 Private Dim S = For Sub Form_Click() S As Integer, I As Integer 0 I = 1 To 100 S = S + I Next I Print "1+2+3+……+100=", S End Sub
Vis计算1+…+100
Private Sub Form_Click() Dim S As Integer, I As Integer S = 0 I = 0 Do Until I > 100 S = S + I I = I + 1 Loop Print "1+2+3+……+100=", S End Sub
Visual Basic 程序设计
第5章 程序控制结构二
循环结构
Visual Basic 程序设计
主要内容
1. 为什么要使用循环结构?
2. For…Next 循环语句
3. While循环
4. Do…Loop 循环
5. 循环嵌套 6. 循环语句使用举例
Visual Basic 程序设计
1.为什么要使用循环结构?
For…Next 循环语句适合处理循环次数已知的循环结构。
For…Next循环语句的格式:
For <循环控制变量>=<初值> TO <终值> [Step <步长>] <循环体> [Exit For] Next <循环控制变量>
For I = 1 To 6 Print "**********" Next I
Visual Basic 程序设计
例题5 输出乘法口诀—1
Private Sub Form_Click() Dim i%, j% For i = 1 To 9 For j = 1 To i Print i * j; Next j Print Next i End Sub
Visual Basic 程序设计
Visual Basic 程序设计
4 Do…Loop 循环语句
四种形式的Do…Loop 语句的比较:
■ 四种循环结构都是以Do语句开始,而以Loop语句结束。
■ 若循环控制条件跟在Do语句后,则要先判断条件,再执 行循环体,因此是一种当型循环;若循环控制条件跟在Loop语 句后,则是先执行循环体,再判断条件 ■ 若条件语句使用While,则当条件为真时,执行循环体, 条件为假时,退出循环;若条件语句使用Until,则当条件为 假时,执行循环体,条件为真时,则退出循环。 例题2:分别使用四种形式的Do…Loop语句,计算: S=1+2+3+……100 的值。
2 For…Next 循环语句
Visual Basic 程序设计
For…Next 循环语句的执行过程 循环变量赋初值
循环变量未超过终值?
True False
循环体
循环变量加上一个步长
Visual Basic 程序设计
2 For…Next 循环语句 功能:
当循环变量的值在初值到终值范围内时,执行一次循环 体中的语句块,并使初值增加一个步长。 当循环变量的值不在初值到终值范围内时,就退出循环, 执行Next后面的语句。
Rnd), Int(256 * Rnd))
Int(256 *
Print "Hello" Next i End Sub
Visual Basic 程序设计
3 While循环语句
While循环又称“当” 型循环,它是通过“循环 条件”控制重复执行一组 语句。 While <循环条件> <循环体> Wend
例题5 输出乘法口诀—2
Private Sub form_Click() For I = 1 To 9 For J = 1 To I Print I;"*"; J; "="; I * J; ' 不换行 Next J Print ' 换行 Next I End Sub
Visual Basic 程序设计
Visual Basic 程序设计
1 为什么要使用循环结构?
在VB中,通常可以使用如下循环语句:
■ For…Next 语句:适合处理循环次数预知 的循环问题。 ■ While...Wend语句 、Do…Loop 语句: 适合处理用循环条件控制的循环问题。
Visual Basic 程序设计
2 For…Next 循环语句
VB 程序设计基础课件 Visual Basic 程序设计
例题3 计算S=1!+2!+……+20!
Private Dim Dim S = For Sub Form_Click() S As Single, temp As Single I As Integer, J As Integer 0 I = 1 To 20 temp = 1 For J = 1 To I temp = temp * J Next J S = S + temp Next I Print "1!+2!+……20!=", S End Sub