收藏 分享(赏)

第6章 循环结结构.doc

上传人:hwpkd79526 文档编号:9403947 上传时间:2019-08-05 格式:DOC 页数:31 大小:219.50KB
下载 相关 举报
第6章 循环结结构.doc_第1页
第1页 / 共31页
第6章 循环结结构.doc_第2页
第2页 / 共31页
第6章 循环结结构.doc_第3页
第3页 / 共31页
第6章 循环结结构.doc_第4页
第4页 / 共31页
第6章 循环结结构.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、第 6 章 循环结结构在 Visual Basic 程序的三种结构中,循环结构是一种重要结构。循环的本质:不断地重复某种动作。对计算机程序而言,循环必须具备两个重要因素:1. 在一定的条件下,重复执行一组语句2. 必然出现不满足条件的情况,使循环终止VB 中提供了两种类型的循环语句:一种是计数循环语句;另一种是条件循环语句。Visual Basic 支持的循环结构有:DoLoop For.NextWhileWend 重点掌握: DoLoop、 For.Next、 WhileWend等前三种循环6.1 DoLoop 循环结构611 当型循环结构DoLoop 循环用于事先不知道循环次数的循环结构。

2、此种语句四种语法格式: . Do While Loop 语句 . Do Loop While 语句 . Do Until Loop 语句 . Do Loop Until 语句. Do While Loop 语句语法格式:Do While 条件表达式循环体Exit Do循环体Loop说明: 条件表达式可以是一个逻辑表达式,也可以是一个关系表达式,其值应是逻辑型。 Do While 和 Loop 应成对出现。 循环体中要有控制循环的语句,以避免出现死循环。 由于该循环的特点是先判断条件,然后再决定是否要执行循环体里的语句。所以,这种循环可以一次也不执行循环体。 Exit Do 表示当遇到该语句时,

3、强制退出循环,执行 Loop 后的下一条语句例 6-1 求 1+2+3+100Private Sub Form_Click()Dim sum, n As Integersum = 0: n = 1Do While n -1sum = sum + scoreN = N + 1score = InputBox(“请输入第 “ averageEnd Sub例 6-2a 使用 exit do 的程序。求出 n。n的 最 小 的10212Private Sub Form_Click()Dim n As IntegerDim s As Integern = 1s = 0Do While s 5000 Th

4、en Exit Don = n + 2Loop While n 5000 Then Exit Don = n + 2Loop Until n 999Print “s=“; sEnd Sub例 6-4 人口增长问题。Private Sub Command1_Click()Dim p As DoubleDim r As SingleDim n As Integerp = 1280000000r = Val(Text1.Text) / 100n = 0Dop = p * (1 + r)n = n + 1Loop Until p = 1500000000Text2.Text = nEnd Sub613

5、 while 循环结构语法格式:While (条件表达式)循环体Wend说明:此种格式不能使用 exit 跳出循环。例 6-5 将例 6-1 用 whilewend 实现Private Sub Command1_Click()Dim sum, n As Integersum = 0: n = 1While n Exit For Next 循环变量例题:编程计算:S=1+2+3+100Dim S%, I%S=0 累加前变量 S 为 0For I=1 to 100 S=S+INext IPrint “ S=“,S 说明: 格式中的参数说明:循环变量必须为数值型。循环的初值、终值和步长都是数值表达式

6、,其值不一定是整数,可以是实数,VB 自动取整。其中,增量参数可正可负。如果增量为正,则初值必须小于等于终值,否则不能执行循环体内的语句;如果增量为负,则初值必须大于等于终值。如果没有设置 step,则增量默认为 1。在 For 语句和 Next 语句之间的语句序列称为循环体,可以是一个或多个语句。Exit For 为强行退出循环语句。当遇到该语句时,退出循环,执行 Next 的下一个语句。Next 是循环终端语句,在 Next 后面的循环变量与For 中的循环变量必须相同。当循环是单层循环时,Next 后面的循环变量可以不写。 For 循环语句的执行过程是:首先把初值赋给循环变量,接着检查循

7、环变量的值是否超过终值,如果超过就不执行循环体,跳出循环,执行 Next 后面的语句;否则执行一次循环体,然后把循环变量增加步长,再赋给循环变量,重复上述过程。 当初值等于终值时,不管步长是正数还是负数,都执行一次循环体。 循环次数由初值、终值和步长决定,计算公式为:循环次数=INT(终值 初值)/步长+1) For 语句和 Next 语句必须成对出现,不能单独使用。 如果要在循环变量到达终值前退出循环,可用Exit For 语句来实现。该语句可以在 For 循环中出现多次,且位置不限。 在循环体中可以使用循环变量,但一般不再对循环变量赋值。例 6-6 计算 11000 奇数之和。Privat

8、e Sub Command1_Click()Dim i, sum As Integersum = 0For i = 0 To 1000If i Mod 2 15000 Then Exit ForNext iText1.Text = sumText2.Text = iEnd Sub例 6-7 求水仙花数。Private Sub Command1_Click()Dim p As IntegerList1.ClearFor n = 100 To 999a = Int(n / 100)b = Int(n - a * 100) / 10)c = n - a * 100 - b * 10p = a * a

9、 * a + b * b * b + c * c * cIf p = n Then List1.AddItem pNext nEnd SubPrivate Sub Command1_Click()Dim p As IntegerList1.Clearn = 101Do While n 999End Sub学生思考用 whilewend 语句编写此程序。63 循环的嵌套多重循环结构1、如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套。2、嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式

10、:1)For I=.For J=.Next JNext I(2)For I=.Do While/Until .LoopNext I(3)Do While.For J=.Next JLoop(4)Do While/Until.Do While/Until .LoopLoop例 6-8 打印九九乘法表.Private Sub Form_Click()For i = 1 To 9For j = 1 To ise = i se;Next jPicture1.PrintNext iEnd Sub例 6-9 打印如下图形。Private Sub Form_Click()Dim i, j As Intege

11、rFor i = -3 To 3Print Tab(Abs(i) + 5);For j = 1 To 2 * (4 - Abs(i) - 1Print “*“;Next jPrintNext iEnd Sub64 GOTO 语句语法格式为:goto 标号|行号所谓标号,是给某些行加的一个标识;行号,是一个整数。此语句的另一种格式为:On goto 标号表列|行号表列其功能是根据数值表达式的取值决定转移的目标。例 6-9a 计算利息。Private Sub Form_Click()Dim p As Currencyp = 10000: r = 0.025t = 1again:If t = 10

12、Then GoTo 100i = p * rp = p + it = t + 1GoTo again100Print “p=“; p, “t=“; tEnd Sub65 循环应用程序举例例 6-10 求 1 到 100 之间 5 或 7 的倍数的和。Private Sub Form_Click()Sum = 0For i = 1 To 100If i Mod 5 = 0 Or i Mod 7 = 0 Then Sum = Sum + iNext iPrint “Sum=“; SumEnd Sub例 6-11 求素数。Private Sub Form_Click()Dim n, i, k, j,

13、 flag As Integerj = 0For n = 3 To 200 Step 2k = Int(Sqr(n)flag = 1For i = 2 To kIf n Mod i = 0 Then flag = 0Next iIf flag = 1 Then Print n;: j = j + 1If j Mod 10 = 0 Then PrintNext nEnd Sub例 6-12 穷举法举例(求由 1 角、2 角、5 角组成 1元组合数及组合情况) 。Private Sub Form_Click()Dim n As IntegerFor x = 0 To 10For y = 0 To

14、10For z = 0 To 10If x + 2 * y + 5 * z = 10 ThenPrint x; y; zn = n + 1End IfNext zNext yNext xPrint “n=“; nEnd Sub例 6-13 迭代法举例。利用公式 求)(21nnxax210Private Sub Form_Click()x0 = InputBox(“请输入迭代出发值:“, “迭代初始值“, -1000)X1 = 0.5 * (x0 + 100 / x0)Do While Abs(X1 - x0) = 0.00001x0 = X1X1 = 0.5 * (x0 + 100 / x0)

15、LoopPrint X1End Sub例 6-14 猴子吃桃问题。Private Sub Form_Click()x = 1For i = 9 To 1 Step -1x = 2 * x + 2Next iPrint xEnd Sub例 6-15 求 Fibonacci 数列的前 40 项。Private Sub Form_Click()Dim f1 As LongDim f2 As Longn = 1f1 = 1f2 = 1Do While n = 7Print “i=“; iPrint “a=“; aEnd SubA) I=4A=5B)I=7A=23C)I=8A=7D)I=7A=113下列

16、程序的执行结果是_。Private Sub Form_Click()n = 0j = 1Do Until n 2n = n + 1j = j + n * (n + 1)LoopPrint n; jEnd SubA)0 1 B)3 7 C)3 21 D)3 134下列程序的执行结果是_。Private Sub Form_Click()n = 0For i = 1 To 3For j = 5 To 1 Step -1n = n + 1Next j, iPrint n; j; iEnd SubA)12 0 4 B)15 0 4 C)12 3 1 D)15 3 15下列程序的执行结果是_。Privat

17、e Sub Form_Click()k = 0For j = 1 To 2For i = 1 To 3k = i + 1Next iFor i = 1 To 7k = k + 1Next iNext jPrint kEnd SubA)10 B)6 C)11 D)166对于下面结构的循环语句,叙述正确的是_。Do until 条件循环体LoopA)如果条件是一个为 0 的常数,则不执行循环体B)如果条件是一个为 0 的常数,则至少一次执行循环体C)如果条件是一个不为 0 的常数,则至少一次执行循环体D)不论条件是否为真,至少至少执行一次循环体7下列程序的执行结果是_。Private Sub Fo

18、rm_Click()Dim m As Integer, n As Integer, j As Integer, k As Integern = 0For m = 1 To 3For j = 1 To mFor k = 1 To 3n = n + 1Next k, j, mPrint nEnd SubA)6 B)10 C)18 D)218如下程序的 print i*j 的执行次数是_。Private Sub Form_Click()Dim i As Integer, j As Integer, n As Integeri = 1n = 0Do While i = 10 ThenExit ForE

19、nd IfIf x Mod 2 = 1 Thenx = x + 5Elsex = x - 3End IfNext yPrint xEnd SubA)4 B)6 C)8 D)1011下列程序的执行结果是_。Private Sub Form_Click()Dim i As Integer, j As Integer, s As IntegerFor i = 6 To 5 Step -1s = 0#For j = i To 4 Step -1s = s + i * jNext jNext iPrint sEnd SubA)90 B)45 C)135 D)6012下列程序的执行结果是_。Private

20、 Sub Form_Click()Dim k As Integer, c As String * 1k = 0: c = “A“DoSelect Case cCase “A“k = k + 1Case “B“k = k - 1Case “C“k = k + 2Case “D“Case “E“k = k * 2Case Elsek = k / 3End Selectc = Chr(Asc(c) + 1)k = k + 1Loop While c = “A“ And ch = “a“ And ch = “0“ And ch Max Then Max = xIf x Min Then Min = xSum = Sum + xNext i

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报