循环结构设计
第5章循环结构设计 采用循环程序可以解决一些按一定规则重复执行的问题。 例如,统计一个班几十名学生,甚至全校几千名学生的学期 成绩,如求平均分、不及格人数等 本章主要内容 循环语句 For.Next /Do, Loop /While. Wend 循环出口语句(Exi 多重循环 列表框与组合框 程序举例
采用循环程序可以解决一些按一定规则重复执行的问题。 例如,统计一个班几十名学生,甚至全校几千名学生的学期 成绩,如求平均分、不及格人数等 本章主要内容 For...Next / Do...Loop / While...Wend 循环出口语句(Exit) 程序举例 第5章 循环结构设计
循环是指在指定的条件下多次重复执行一组语 句。被重复执行的一组语句称为循环体 VB提供的循环语句有 DO. Loop For Next While. wend For each. Next 最常用的是 For Next和Do.L0op语句
循环是指在指定的条件下多次重复执行一组语 句。被重复执行的一组语句称为循环体 VB提供的循环语句有 Do...Loop For...Next While...Wend For Each...Next 最常用的是For...Next和Do...Loop语句
50环语句 5.1.1For..Nex循环语句 按指定次数执行循环体 例5.1在窗体上显示2至10各偶数的平方数 采用 Print直接在窗体上输出结果,程序代码: Private Sub Form Loads Dim k As Integer Show 程序运行结果: For k=2 To 10 Step 2 Printk* k 16 Next k 36 End sub 64 100
5.1.1 For...Next循环语句 按指定次数执行循环体 例5.1 在窗体上显示2至10 采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Dim k As Integer Show For k = 2 To 10 Step 2 Print k * k Next k End Sub 5.1 循环语句 程序运行结果: 4 16 36 64 100
说明:上述程序,循环变量k的初值、终值和步长值分别 为2,10和2,即从2开始,每次加2,到10为止,控制循环5次。 每次循环都将循环体( Print k*k执行一次 格式:For循环变量=初值T终值|Step步长值 循环体 Next循环变量 功能:本语句指定循环变量取一系列数值,并且 对循环变量的每一个值把循环体执行一次 初值、终值和步长值都是数值表达式,步长值可以是正数 称为递增循环),也可以是负数(称为递减循环 若步长值为1,则Step1可以省略
说明:上述程序,循环变量k的初值、终值和步长值分别 为2,10和2,即从2开始,每次加2,到10为止,控制循环5次。 每次循环都将循环体(Print k*k)执行一次 格式: For 循环变量=初值To 终值 [Step 步长值] Next 循环变量 功能:本语句指定循环变量取一系列数值,并且 对循环变量的每一个值把循环体执行一次 初值、终值和步长值都是数值表达式,步长值可以是正数 (称为递增循环),也可以是负数(称为递减循环) 若步长值为1,则Step 1可以省略
For.Next语句的执行步骤 (1)求出初值、终值和步长值,并保存起来 (2)将初值赋给循环变量 (3)判断循环变量值是否超过终值(步长值为正时,指大于 终值;步长值为负时,指小于终值)。超过终值时,退出循环, 执行Next之后的语句 (4)执行循环体 (5)遇到Next语句时,修改循环变量值,即把循环变量的 当前值加上步长值再赋给循环变量 (6转到(3)去判断循环条件 例51的执行过程
(1)求出初值、终值和步长值,并保存起来 (2)将初值赋给循环变量 (3)判断循环变量值是否超过终值(步长值为正时,指大于 终值;步长值为负时,指小于终值)。超过终值时,退出循环, 执行Next (4)执行循环体 (5)遇到Next语句时,修改循环变量值,即把循环变量的 当前值加上步长值再赋给循环变量 (6)转到(3)去判断循环条件 例5.1的执行过程 For...Next语句的执行步骤
例5.2求S=1+2+3+…+8 采用 Print直接在窗体上输出结果,程序代码: Private Sub Form Load Show 0 For k =1 to 8 s=s+k Next k Print s= s End sub 程序运行结果如下: 36 语句s=s+k(循环体语句的执行过程 ★
采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show s = 0 For k = 1 To 8 s = s + k Next k Print "s="; s End Sub s=36 语句s=s+k(循环体语句)的执行过程 例5.2 求S = 1 + 2 + 3 + … + 8
例5.3求T=8!=1×2×3×…×8 采用 Print直接在窗体上输出结果,程序代码: Private Sub Form Load Show t=1 Forc= 1 to 8 Next c Print t=: t End Sub 程序运行结果是: T=40320 语句t=tc也称乘法器。先将t置1(不能置0) 在循环程序中,常用累加器和累乘器来完成各种计算任务
采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show t = 1 For c = 1 To 8 t = t * c Next c Print "T="; t End Sub T=40320 语句t=t*c也称乘法器。先将t置1(不能置0) 在循环程序中,常用累加器和累乘器来完成各种计算任务 例5.3 求T = 8! = 1×2×3×…×8
例5.4用π/4=1-1/3+1/5-1/7+…级数 求π的近似值(取前500来进行计算) 采用 Print直接在窗体上输出结果,程序代码如下: Private Sub Form Load Show Dim piAs single, c As Integer, s As Integer pI 01 s表示加或减运算 Forc= 1 To 10000 Step 2 pi= pi+ s/c 交替改变加、减号 ext c Print"π=";pi*4 End Sub 程序运行结果是 ★ 丌=3.141397
采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show Dim pi As Single, c As Integer, s As Integer pi = 0 s = 1 's表示加或减运算 For c = 1 To 10000 Step 2 pi = pi + s / c s = -s '交替改变加、减号 Next c Print "π="; pi * 4 End Sub 程序运行结果是: π=3.141397 例5.4 用π/4=1 - 1/3 + 1/5 - 1/7 + ……级数 求π的近似值 (取前5000项来进行计算)
例5.5用100元买100只鸡,母鸡3元1只, 小鸡1元3只,问各应买多少只? 下面采用“穷举法”来解此题。 其做法是:从所有可能解中,逐个进行试验,若 满足条件,就得到一个解,否则不是。直到条件满 足或判别出无解为止。 令母鸡为x只,小鸡为y只,根据题意可知 y=100-X 开始先让x初值为1,以后逐次加1,求x为何值时, 条件3x+y3=10成立。如果当x达到30时还不能使条 件成立,则可以断定此题无解
下面采用“穷举法”来解此题。 其做法是:从所有可能解中,逐个进行试验,若 满足条件,就得到一个解,否则不是。直到条件满 足或判别出无解为止。 令母鸡为x只,小鸡为y只,根据题意可知 y = 100 – x 开始先让x初值为1,以后逐次加1,求x为何值时, 条件3x+y/3=100成立。如果当x达到30时还不能使条 件成立,则可以断定此题无解 例5.5 用100 元买100 只鸡,母鸡3元1只, 小鸡1元3只,问各应买多少只?