循环结构
学习目标:
通过老师讲解理解循环语句。
通过自主探讨,深入理解循环语句并解决实际问题。
循环结构
要让计算机重复做一件事情时,可以用循环结构。VB中常用For-Next、Do while-Loop、Do-Loop Until等来构建循环结构。
for循环语句的组成
For 循环变量 = 初值 To 终值 [ Step(步长)]
循环体
Next 循环变量
循环结构
其中步长(Step)表示循环变量的增量,省略则默认为1。
步长正数时For-Next 循环结构流程图
开始
循环变量=初值
循环变量 <= 终值
执行循环体
循环变量 = 循环变量 + 步长
结束
yes
no
步长负数时For-Next 循环结构流程图
开始
循环变量=初值
循环变量 >= 终值
执行循环体
循环变量 = 循环变量 + 步长
结束
yes
no
For i = 10 to 5 step -2
用循环语句计算 1+2+3+4+5+6+7+8+9+10 = ?
S = 0
For i=1 to 10
s = s + i
Next i
1
循环次数
变量i
执行循环语句
S + i
S
1
2
3
4
5
6
7
8
9
10
11
退出循环
1 < 10
是
0+1
1
2 < 10
是
0+1+2
3
3 < 10
是
0+1+2+ 3
6
S = 0
i = 1
变量初始值
4 < 10
是
0+1+2+3+4
10
5 < 10
是
0+1+2+3+4+5
15
6 < 10
是
0+1+2+3+4+5+6
21
7 < 10
是
0+1+2+3+4+5+6+7
28
8 < 10
是
0+1+2+3+4+5+6+7+8
36
9 < 10
是
0+1+2+3+4+5+6+7+8+9
45
10 = 10
是
0+1+2+3+4+5+6+7+8+9+10
55
11 > 10
55
S+i 语句不执行
用循环语句计算 1+3+5+7+9 = ?
S = 0
For i=1 to 10 step 2
s = s + i
Next i
1
循环次数
变量i
执行循环语句
S + i
S
1
2
3
4
5
6
1 < 10
是
0+1
1
3 < 10
是
1+ 3
4
S = 0
i = 1
变量初始值
5 < 10
是
1+3+5
9
7 < 10
是
1+3+5+7
16
9 < 10
是
1+3+5+7+9
25
11 > 10
25
S+i 语句不执行
退出循环
第一题:请同学们编写一个程序完成下列问题
全年级前五十名同学需要发奖金,第 50 名同学获得10元,第49名同学获得20元…第一名获得500元,请问学校总共需要发放多少元的奖金?编写一个循环执行的语句。
答案:
S = 0
For i = 10 to 500 step 10
s = s + i
Next I
Print s
第二题:请同学们编写一个程序完成下列问题
用For-next循环计算1到10之内的所有自然数字的乘积。
答案:
S = 1
For i = 1 to 10 step 1
s = s * i
Next i
Print s
Do while 循环
Do while 循环条件
循环体
Loop
loop untile 循环条件
Do
循环体
Loop until 循环条件
Do while 循环
s=2
Do while s < 3
s = s + 1
Loop
循环体执行次数:1
第一次:2 < 3 ( true )
s=s+1 = 3
第二次:3 < 3 ( false )
退出循环
最后s的值为:3
loop untile 循环条件
a=1
Do
a=a*2
Loop until a>=4
先执行后判断
第一次:a = 1 * 2 = 2
当2 >= 4不成立,进入下一个循环
A = 2 * 2 = 4 、 4 等于4结束循环!
循环体执行次数为 2 次
第三题:请同学们编写一个程序完成下列问题
假设某种细菌每10秒就可以由1分成2个,多长时间后它的数量会超过1亿?
答案:
S = 1 ’ 细菌的初始值
T = 0 ’ 时间变量
Do while s <= 100000000
t = t + 10
s = 2 * s
Loop
循环次数
变量t
S<=100000000
T+10和 2*s
T 和 s
1
2
…
27
28
0
是
0+10 、 1*2
1 0 和 2
10
是
10+10 、 2*2
20 和 4
…
…
…
260 和 67108864
260
是
260+10 、 2*67108864
270 和 134217728
270
不成立
退出循环
270 和 134217728
课堂小结
Step 为 1 的时候可以不写
Step 为负数时循环控制变量递减 (i = i + step )
Step 为正数时循环控制变量递增 (i = i + step )
Do while - Loop: 先判断循环条件,后执行语句。
Do Loop-Until: 先执行语句,后判断循环条件。
循环次数确定的话用For-Next,否则用 Do while-Loop。