




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环结构,Do Loop之“当”循环,形式1: 形式2: Do While Do 语句块(循环体) 语句块(循环体) Loop Loop While ,当条件为真(true)时循环!,Do Loop循环示例1,Private sub Form_click() Dim num% num=1 Do while num=10 Print num Num=num+1 Loop End sub,Private sub Form_click() Dim num% num=1 Do Print num Num=num+1 Loop while num=10 End sub,S=1+2+3+100,Private Sub Form_Click() Dim i As Integer i为累加数 Dim sum As Integer sum为累加和 i =1 sum = 0 Do While i = 100 sum = sum + i i = i + 1 Loop Print sum End Sub,S=1+2+3+100,Private Sub Form_Click() Dim i As Integer Dim sum As Integer i = 1 sum = 0 Do sum = sum + i i = i + 1 Loop While i = 100 Print sum End Sub,Do Loop之“直到”循环,形式1: 形式2: Do Until Do 语句块(循环体) 语句块(循环体) Loop Loop Until ,直到条件为真(true)时退出循环!,S=1+2+3+n,Private Sub Command1_Click() Dim i As Integer, n As Integer Dim sum As Integer n = Val(Text1.Text) sum = 0 i = 0 Do Until i n sum = sum + i i = i + 1 Loop Text2.Text = sum End Sub,S=1+2+3+n,Private Sub Command1_Click() Dim i As Integer, n As Integer Dim sum As long n = Val(Text1.Text) sum = 0 i = 0 Do sum = sum + i i = i + 1 Loop Until i n Text2.Text = sum End Sub,5.2 For 循环语句,For循环语句是计数型循环语句,用于控制循环次数已知的循环结构。语句形式如下: For 循环变量 = 初值 To 终值 Step 步长 循环体 Next 循环变量,For 循环变量 = 初值 To 终值 Step 步长 循环体 Next 循环变量,(1)“循环变量”:必须为数值型,取值范围在初值和终值之间。 (2)“初值”、“终值”:都是数值型,可以是数值表达式。 (3)“步长”:是数值型,可以是数值表达式。 步长不能为0。如果步长是1,则Step 1可以省略不写。 (4)“循环体”:在For和Next之间一条或多条语句,他们将被执行指定的次数 。 (5)Next后面的循环变量与For语句中的循环变量必须相同。,使用For循环计算1+3+5+99的值,Private Sub Command1_Click() Dim i As Integer, n As Integer Dim sum As Integer sum = 0 For i = 1 to 99 step 2 sum = sum + i Next i Print sum End Sub,For 循环变量 = 初值 To 终值 Step 步长 循环体 Next 循环变量,使用For循环计算1+3+5+99的值,Private Sub Command1_Click() Dim i As Integer, n As Integer Dim sum As Integer sum = 0 For i = 99 to 1 step -2 sum = sum + i Next i Print sum End Sub,For 循环变量 = 初值 To 终值 Step 步长 循环体 Next 循环变量,For 和Do Loop的比较,采用For语句比Do Loop更加简明。 一般情况下,能够预先确定循环次数时,应优先采用For语句,否则的话应该使用Do Loop语句,【例 5.13】利用随机数函数模拟抛硬币,采用的方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。,在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入抛硬币次数、出现正面的次数和出现反面的次数,如图所示。,Private Sub Command1_Click() Dim n As Long Dim n1 As Long, n2 As Long Randomize n = Val(Text1.Text) n1 = 0 n2 = 0 For i = 1 To n r = Int(Rnd * 2) If r = 1 Then n1 = n1 + 1 Else n2 = n2 + 1 End If Next Text2.Text = n1 Text3.Text = n2 End Sub,循环的嵌套多重循环结构 如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。 下面是几种常见的二重嵌套形式:,(1)For I=. For J=. . Next J Next I,(2)For I=. Do While/Until . . Loop Next I,(3)Do While. For J=. . Next J Loop,(4)Do While/Until. Do While/Until . . Loop Loop,循环嵌套,Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 3 Print “i=” ; i For j = 1 To 3 Print Tab; “j=“; j Next j Next I End Sub,图5.6 例5.4显示结果,循环嵌套,For i = 1 To 3 Step 1 Print “i=” ; i For j = 1 To 3 Step 1 Print Tab; “j=“; j Next j Next i,i=1,i=3,i=i+1,Print “i=” ; i For j = 1 To 3 Print Tab; “j=“; j Next j,N,Y,循环嵌套,i=1,i=3,i=i+1,Print “i=“;i,j=j+1,j=1,j=3,Print Tab; “j=“; j,Y,N,Y,N,For i = 1 To 3 Step 1 Print “i=” ; i For j = 1 To 3 Step 1 Print Tab; “j=“; j Next j Next i,循环嵌套,For i = 1 To 3 Step 1 Print “i=” ; i For j = 1 To 3 Step 1 Print Tab; “j=“; j Next j Next i,i=1,i=3,i=i+1,Print “i=” ; i For j = 1 To 3 Print Tab; “j=“; j Next j,N,Y,循环嵌套,i=1,i=3,i=i+1,Print “i=“;i,j=j+1,j=1,j=3,Print Tab; “j=“; j,Y,N,Y,N,For i = 1 To 3 Step 1 Print “i=” ; i For j = 1 To 3 Step 1 Print Tab; “j=“; j Next j Next i,循环嵌套,For i = 1 To 3 Print “i=” ; i For j = 1 To 3 Print Tab; “j=“; j Next j Next i,i=1,i=3,i=i+1,j=j+1,j=1,j=3,Print Tab; “j=“; j,Y,N,Y,N,【例5.8】将一角钱换成零钱(可以包括含1分、2分、5分中的任意多个面值),共有多少种换法? 组成一角的零钱中,最多有10个1分、5个2分、2个5分。判断所有的组合中,总和正好是一角(10分)的情况有多少次即为所求。这类方法称为“穷举法”,也称“枚举法”。,Private Sub Command1_Click() Dim i As Integer, j As Integer, k As Integer Dim n As Integer Print “1分个数“, “2分个数“, “5分个数“ For i = 0 To 10 For j = 0 To 5 For k = 0 To 2 If i + j * 2 + k * 5 = 10 Then n = n + 1 Print i, j, k End If Next Next Next Print “共有“ & n & “种方法“ End Sub,图5.8 例5.8显示结果,打印图案,* * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * *,0 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3,1 1 2 3 1 2 3 4 5 1 2 3 4 5 6 7,1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1,A A B A A B C B A A B C D C B A,打印图案和九九乘法表,* # # # * * * * * # # # # # # #,* # * # * # * * # * # * * # * *,自顶向下、逐步求精 分而治之,For i=1 to 4 打印第i行 换行 Next i,* * * * * * * * * * * * * * * * * * * * * * * *,打印第一行星号;换行 打印第二行星号;换行 打印第三行星号;换行 打印第四行星号;换行,分析:?,For i=1 to 4 打印第i行 换行 Next i,* * * * * * * * * * * * * * * * * * * * * * * *,For i=1 to 4 For j=1 to 6 同行打印第 j 颗 “*” Next j print Next i,For i=1 to 4 打印第i行 换行 Next i,* * * * * * * * * * * * * * * * * * * * * * * *,For i=1 to 4 For j=1 to 6 同行打印第 j 颗 “*” Next j print Next i,For i=1 to 4 打印第i行 换行 Next i,* * * * * * * * * * * * * * * * * * * * * * * *,For i=1 to 4 For j=1 to 6 同行打印第 j 颗 “*” Next j print Next i,* * * * * * * * * * * * * * * * * * * * * * * *,For i=1 to 4 For j=1 to 6 同行打印第 j 颗 “*” Next j print Next i,Dim i%, j% For i=1 to 4 for j=1 to 6 print “* “ ; next j print Next i,* * * * * * * * * * * * * * * *,For i=1 to 4 打印第i行 换行 Next i,For i=1 to 4 For j=1 to 2*i-1 同行打印第 j 颗 “*” Next j print Next i,* * * * * * * * * * * * * * * *,For i=1 to 4 打印第i行 换行 Next i,For i=1 to 4 For j=1 to 2*i-1 同行打印第 j 颗 “*” Next j print Next i,* * * * * * * * * * * * * * * *,For i=1 to 4 打印第i行 换行 Next i,For i=1 to 4 定位第一颗星; For j=1 to 2*i-1 同行打印第 j 颗 “*” Next j print Next i,* * * * * * * * * * * * * * * *,For i=1 to 4 定位第一颗星; For j=1 to 2*i-1 同行打印第 j 颗 “*” Next j print Next i,For i=1 to 4 print tab(5-i); For j=1 to 2*i-1 print “*”; Next j print Next i,For i=1 to 4 定位第一颗星?; For j=1 to ? 同行打印第 j 颗 “*” Next j print Next i,For i=1 to 4 print tab(i); For j=1 to 9-2*i print “*”; Next j print Next i,* * * * * * * * * * * * * * * *,打印图案,* # # # * * * * * # # # # # # #,For i=1 to 4 print tab(5-i); For j=1 to 2*i-1 ? Next j print Next i,打印图案,* # * # * # * * # * # * * # * *,For i=1 to 4 print tab(i); For j=1 to 9-2*i ? Next j print Next i,打印九九乘法表,图5.7 例5.5显示结果,Private Sub Form_Click( ) Dim se As String Print Tab(35); “九九乘法表“ Print Tab(35); “-“ For i = 1 To 9 For j = 1 To 9 se = i Next j Print Next i End Sub,Private Sub Form_Click( ) Dim se As String Print Tab(35); “九九乘法表“ Print Tab(35); “-“ For i = 1 To 9 For j = 1 To 9 se = i Next j Print Next i End Sub,Private Sub Form_Click( ) Dim se As String Print Tab(35); “九九乘法表“ Print Tab(35); “-“ For i = 1 To 9 For j = 1 To 9 se = i Next j Print Next i End Sub,Exit Do语句,Exit Do语句可以用来结束DoLoop循环。一般和选择结构语句一起配合使用。 它必须放置在DoLoop语句的循环体中。当执行到Exit Do时,程序会立即结束循环,跳到loop后面执行下面的语句。 当有多个循环嵌套使用时,Exit Do语句只跳出所在的最内层的DoLoop循环。,S=1+2+3+100,Private Sub Form_Click() Dim i As Integer Dim sum As Integer i =1 sum = 0 Do sum = sum + i i = i + 1 If i 100 Then Exit Do Loop Print sum End Sub,Exit For语句,Exit For语句可以用来结束ForNext循环。一般也和选择结构语句一起配合使用。 它必须放置在ForNext语句的循环体中。当执行到Exit For时,程序会立即结束循环,跳到Next后执行下面的语句。 当有多个循环嵌套使用时,Exit For语句只跳出所在的最内层的ForNext循环。,【例 5.7】给定一个数n,判断它是否是素数,分析:素数就是一个大于2且只能被1和本身整除的整数。 判断一个数是否为素数比较简单的方法是:用n逐个除以2n-1之间的每个整数 只要有一个可以整除,则说明n不是素数; 如果全部不能整除,则说明n是素数。,Private Sub Form_Click() Dim i As Integer Dim n As Integer n = InputBox(“请输入一个整数“) For i = 2 To n-1 If n Mod i = 0 Then Exit For End If Next I If i n Then Print n & “不是素数“ Else Print n & “是素数“ End If End Sub,比较循环结束后循环变量i的值来判断是正常结束还是强行跳出,从而确定被验证的数n是否为素数。,对于循环的嵌套,要注意以下事项: (1) 内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内循环. 正 确 错 误,For ii =1 To 10 For jj=1 To 20 Next ii Next jj,For ii =1 To 10 For ii=1 To 20 Next ii Next ii,For ii =1 To 10 For jj=1 To 20 Next jj Next ii,For ii =1 To 10 Next ii For ii =1 To 10 Next ii,常见题型,数值计算 1!+2!+.+n! 1 - 1/3 + 1/5 - 1/7 + 1/9 + x - x3/3! + x5/5! - x7/7! + x9/9! - ,数值计算,伪代码描述: 累加项(term)赋初值,累加和(sum)赋初值 while () sum=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肥料施用与农业可持续发展考核试卷
- 服装设计开发流程
- 葡萄酒包装的可持续性发展考核试卷
- 乳制品个人卫生健康管理
- 无创呼吸机病人的护理
- Xanomeline-d3-LY-246708-d-sub-3-sub-生命科学试剂-MCE
- BP-Fluor-555-azide-生命科学试剂-MCE
- 义务教育道德与法治课程标准(2022年版)
- 定期报告:六月继续震荡偏强结构性行情依旧
- 2025中国“双一流”高校医学建设数据分析报告
- Q∕SY 05262-2019 机械清管器技术条件
- DB32989-2007低压电气装置规程
- 早产儿出院后喂养(课堂PPT)
- 英语的起源与发展(课堂PPT)
- 部编版六年级下册道德与法治知识点大汇总
- T∕CSTE 0008-2020 污水处理用碳源液体乙酸钠
- Q∕GDW 46 10022.9-2020 主进水阀本体运检导则
- 整体yuan yin yun yingp
- 姿态动力学作业(共9页)
- 电网公司竣工决算报告编制规范与竣工决算资料的要求
- 城市主干道工程监理大纲
评论
0/150
提交评论