内容正文:
项目7 循环结构
项目导入
循环控制结构是程序中的另一个基本结构。
在实际问题中,常常需要进行大量的重复处理,循环结构可以使程序设计者只写很少的语句,就可以让计算机反复执行,从而完成大量类似的计算。
Visual Basic 提供了 For 语句、Do … Loop 语句和 While 语句实现循环结构。
项目7由4个任务组成,分别是For…Next 循环语句、Do循环语句、While…Wend循环语句,以及循环的嵌套。
2
项目目标
掌握 For...Next 循环语句的格式及使用
掌握Do...Loop 循环语句的格式及使用
掌握While...Wend 循环语句的格式及使用
掌握多重循环的执行过程
3
4
任务1 For...Next循环结构
任务目标
掌握For …Next循环语句的格式及使用
任务实施
当可以预知程序中循环的次数时,可用For …Next语句For …Next循环中有一个计数器变量,决定循环的次数。
1.For循环语句的格式及使用
(1)格 式:
For <循环变量>=<初值> To <终值>[Step<步长>]
[语句组]
[Exit For] '在特定条件下退出循环
[语句组]
Next [循环变量]
(2)循环过程:
开始时,循环变量的值为初值,每执行一次循环体,它的值要加一次步长的值,然后判断其值是否小于或等于(或者大于或等于,在步长为负值的情况下)终值,如果判断结果为“真”,则继续执行循环体,否则退出循环。
5
(3)说明:
①<循环变量>是数值型变量。
②<初值>、<终值>、<步长>是数值型常量或变量;但不能是数组元素。
③循环的条件:
当“步长”>0时,循环变量<=终值;
当“步长”<0时,循环变量>=终值。
6
(4)注意事项:
①当初值等于终值时,不论步长是正数还是负数,循环体均将被执行一次。
②For语句和Next语句必须成对出现,不能单独使用。
7
(1)分析:
这是一个“累加求和”的问题。解决这类问题时,通常是引入一个用来存放“和”值的单元s,然后循环地向s中加入一个加数,最后,在变量s中存放的就是累加的结果。
8
【例7.1】计算s=1+2+3+...+100。
【例7.1】计算s=1+2+3+...+100。
(2)创建程序界面,设置属性如图7-1所示。
9
【例7.1】计算s=1+2+3+...+100。
Private Sub Command1_Click()
Dim i As Integer,s As Integer
s=0
For i=1 To 100 Step 1
s=s+i
Next i
Label2.Caption=s
End Sub
10
(3)编写事件代码。
编写“计算”命令按钮的Click事件代码:
运行结果如图7-2所示
11
注意:
在“累加”问题中,关键在于设置了一个用来表示累加和的变量,然后通过循环依次向其中放入一个有规律变化的累加项。
除此以外,还有“累乘求积”的问题,累乘与累加的区别除运算不同外,用来表示积的变量的初始值应设置为1,因为1不影响运算的结果。
在解决这类问题时,关键在于确定循环次数和找到每次要相加或相乘的项与循环变量之间的关系。有的累加或累乘问题中,每次的累加或累乘项与循环变量之间不存在任何关系,这种情况下可以单独设置一个变量来表示这个项。
12
12
【例7.2】输出1~50之间能被5整除的数并求其和。
(1)分析:
可以通过循环语句确定查找的范围:循环变量的初值为1,终值为50,步长为1。
用if语句来确定查找的条件:I mod 5=0
找到满足条件数进行累加
(2)界面设计:
“显示”按钮
(3)编写“显示”命令按钮的Click事件代码:
13
【例7.2】 输出1~50之间能被5整除的数并求其和
Private Sub Command1_Click()
Dim sum As Integer
For i=1 To 50
If i Mod 5=0 Then
sum=sum+i
Print i;
End If
Next i
Print
If sum< >0 Then
Print "sum =";sum
End If
End Sub
14
【例7.2】输出1~50之间能被5整除的数并求其和。
程序运行结果是如图7-3所示。
15
拓展与提升:
同学们还可以想到其他方法吗?
2.For循环的次数
循环次数:
n=(INT(终值-初值)/步长+1)
16
给定程序员代码如下:
17
Private Sub Command1_Click( )
Dim sum As Integer
For i=1 To 50 Step 5
n=n+1
Next i
Text1=n
Text2=i
End Sub
【例7.3】 建立以下用户界面,测试给定程序的循环次数。
程序运行结果如图7-4所示。
课堂反馈
1.计算1 2 3 4 5 … 10的值。
2.统计1~100之间能被3整除的数的个数。程序运行结果如图7-5所示。
18
图7-5 程序运行结果
$$