欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    vb控制结构循环结构程序设计课件.ppt

    • 资源ID:1289732       资源大小:380.84KB        全文页数:49页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    vb控制结构循环结构程序设计课件.ppt

    第6章 VB控制结构(2),循环结构程序设计,第6章 VB控制结构(2)循环结构程序设计,本章内容及要求:(1)掌握For.Next语句及Exit For语句的使用; (2)掌握Do.Loop循环语句与Exit Do语句的使用;(3)掌握循环结构的嵌套应用;(4)掌握循环结构和选择结构的嵌套应用。,本章内容及要求:,6.1 概述,在Visual Basic程序设计中,实现循环结构的语句主要有下列几种: l ForNext语句 DoLoop语句 l WhileWend语句,Do While Loop形式Do Loop While 形式Do Until Loop形式Do Loop Until 形式Do Loop形式,6.1 概述在Visual Basic程序设计中,实现循环结,打印九九乘法表DimSgsAsStringDimi,jAsIntegerFori=1To9被乘数从1变到9Forj=iTo9 乘数从1变到9Sgs=iNextjPicture1.PrintNextI,打印九九乘法表,For循环语句 (一般用于循环次数已知)形式:For 循环变量初值 to 终值 Step 步长 语句块Exit For 语句块Next 循环变量,6.2 For.Next循环结构,For循环语句 (一般用于循环次数已知)循环体 =,循环次数,例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I,循环执行次数 4输出I的值分别为: 2 5 8 11 出了循环输出为: I=14,6.2 For.Next循环结构,循环次数例: For I=2 To 13 Step,6.2 For.Next循环结构,注意跳出FOR循环时的循环变量的值,For i= 1 to 10 step 1 s=s+iNext iPrint i,For i= -1 to -10 step -1 s=s+iNext iPrint i,6.2 For.Next循环结构注意跳出FOR循环时的循,6.2 For.Next循环结构,注意对于ForNext语句来说,一旦进入循环,其“终止值”和“增量”便不会再改变了。,Private Sub Form_Click()Dim i As Integer, j As Integer, k As Integer j = 10: k = 1 For i = 1 To j Step k Print i j = j - 1 k = k + 1 Next Print j, kEnd Sub,6.2 For.Next循环结构注意对于ForNext,练习:分析下面程序段结束时窗体上显示的值是多少?,(2)i2=0For i = 1 To -2 Step -1i2 = i2+1NextPrint i , i2,(-3 4),(1)For i = 1 To 10 i2 = i2+1NextPrint i,(11),(3)i2=0For i = 1 To 5 Step 2i2 = i2+1NextPrint i,(7),(4)i2 = 1For i = 1 To 10i = i + 1i2 = i2 + 1NextPrint i, i2,(11 6),(5) i2 = 1i3 = 10i = 10For i = 1 To i3i = i + 1i2 = i2 + 1i3 = i3 + 1NextPrint i, i2,(11 6),(6)i2 = 0For i = 1 To 10 i2 = i2 + 1 If i 6 Then Exit ForNextPrint i, i2,(7 7),(7) i2 = 0i = 10Do i2 = i2 + 1Loop While i = i2Print i2,(1),练习:分析下面程序段结束时窗体上显示的值是多少?(2)(-,例6.7 编程计算:S=1+2+3+100,Dim S%, I%S=0 累加前变量S为0For I=1 to 100 S=S+INext IPrint S=,S,例6.7的算法流程图,6.2 For.Next循环结构,例6.7 编程计算:S=1+2+3+100Dim S,前测型: Do While 语句块 Exit Do 语句块 Loop,DoLoop循环语句使用形式,6.3 Do.Loop循环结构,前测型:,6.2 Do.Loop循环结构,Private Sub Form_Click() Dim i As Integer: Dim a As Integer 定义所需变量 i = 0: a = 0 给变量赋初值0,这两条语句可省略 Do While i 100 i = i + 1 每次循环,变量i都增加1 a = a + i 每次循环,变量a都加变量i的值 Loop Print a 计算完毕,变量a的值即为所求End Sub,例:使用Do WhileLoop循环语句计算1+2+3+100的值,6.2 Do.Loop循环结构Private Sub F,后测型: Do 语句块 Exit Do 语句块 Loop While ,6.3 Do.Loop循环结构,后测型:6.3 Do.Loop循环结构,6.3 Do.Loop循环结构,例:使用Do Loop While循环语句计算1+2+3+n的值,n的值由文本框输入。,Private Sub Command1_Click() Dim i As Integer, n As Integer, a As Integer 定义所需变量 n = Text1.Text 得到输入的值 Do i = i + 1 每次循环,变量i都增加1 a = a + i 每次循环,变量a都加变量i的值 Loop While i n Text2.Text = a 显示计算结果,变量a的值即为所求End Sub,6.3 Do.Loop循环结构例:使用Do Loop,前测型: Do Until 语句块 Exit Do 语句块 Loop,DoLoop循环语句使用形式,6.3 Do.Loop循环结构,前测型:,6.3 Do.Loop循环结构,例:计算阶乘 n!的值(n的值由文本框输入)。,Private Sub Command1_Click() Dim i As Integer, n As Integer Dim a As Long n = Text1.Text 得到输入的值n a = 1 必须为变量a赋初值1 Do Until i = n i = i + 1 每次循环,变量i都增加1 a = a * i 每次循环,变量a都乘以变量i的值 Loop Text2.Text = a 计算完毕,变量a的值即为所求End Sub,6.3 Do.Loop循环结构例:计算阶乘 n!的值(n,后测型: Do 语句块 Exit Do 语句块 Loop Until ,6.3 Do.Loop循环结构,后测型:6.3 Do.Loop循环结构,例:使用级数求的值。根据下式,计算圆周率的近似值,当计算到绝对值小于0.0001的通项时,认为满足精度要求,停止计算。/4=1- 1/3 + 1/5 -1/7 +(-1)n+11/2n-1+,6.3 Do.Loop循环结构,例:使用级数求的值。6.3 Do.Loop循环结构,Private Sub cmdPi_Click() Dim a As Single 变量a保存通项之和 Dim m As Single 变量m保存通项的绝对值 Dim s As Integer 变量s产生通项的符号 Dim i As Integer 变量i产生通项的分母 s = 1 第一项符号为正 i = 1 第一项为1 Do 开始循环 m = 1 / i 计算通项的绝对值 a = a + s * m 总和加上一个通项 i = i + 2 产生下一个通项分母 s = -s 轮流转换通项的正负号 Loop Until m 0.0001 测试是否满足精度要求 Text1.Text = a * 4 输出计算结果End Sub,6.3 Do.Loop循环结构,Private Sub cmdPi_Click()6.3 D,6.3 Do.Loop循环结构,Do 语句块 Exit Do 语句块Loop,Private Sub Command1_Click() Dim i As Integer, n As Integer Dim a As Long n = val(Text1.Text) a = 1 Do i = i + 1 a = a * i If i = n Then Exit Do Loop Text2.Text = a End Sub,例6.5:计算n!,6.3 Do.Loop循环结构DoPrivate Sub,本节小结: (1)当使用While构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。 (2)当使用Until 构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。,(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。 (4)语句Exit Do的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。,6.3 Do.Loop循环结构,本节小结: (3)在循环体内一般应有一个专门用来改变条,思考:将一个十进制数转换成二进制。,算法流程图,6.3 Do.Loop循环结构,用Do.Loop循环的五种形式分别完成,思考:将一个十进制数转换成二进制。 算法流,将一个十进制数转换成二进制。,算法流程图,6.3 Do.Loop循环结构,分析: 将一个十进制数转换成二进制采用连除2取余数的方法,即将十进制数除以2取余数,直到商为0,然后所得的余数即为二进制数各位的数码,从右到左排列,第一次除2的余数在最右边。算法设计如下:用变量Dec表示十进制数,Bin表示转换所得的二进制数字符串。(1) 输入十进制Dec(2) Dec除以2得余数Res,商又赋值给Dec;让Bin = Res & Bin(3) 若Dec=0,则算法结束;否则执行(2),将一个十进制数转换成二进制。 算法流程图6,将一个十进制数转换成二进制的程序如下:,Private Sub Form_Click() Dim Dec As Integer 表示十进制数 Dim Bin As String 转换为二进制表示 Dim Res As Integer Dec = Val(InputBox(输入一个十进制数Dec=?) Print 十进制数:; Dec Do Res = Dec Mod 2 求出除以2的余数 Bin = Res BinEnd Sub,6.3 Do.Loop循环结构,将一个十进制数转换成二进制的程序如下: Private Su,6.4.1 WhileWend语句 使用格式如下: While Wend 说明:该语句的功能与Do While .Loop实现的循环完全相同。,6.4 WhileWend语句,6.4.1 WhileWend语句6.4 WhileW,6.5.1 循环的嵌套多重循环结构 如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:,6.5 嵌套结构,6.5.1 循环的嵌套多重循环结构6.5 嵌套结构,(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,6.5 嵌套结构,(1)For I=.(2)For I=.(3)Do,For i =1 To 10 For j=1 To 20 Next j Next i,For i =1 To 10 Next i For i =1 To 10 Next i,对于循环的嵌套,要注意以下事项: (1) 内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉;下面是正确的嵌套,6.5 嵌套结构,For i =1 To,For i =1 To 10 For j=1 To 20 Next i Next j,For i =1 To 10 For i=1 To 20 Next i Next i,下面是不正确的嵌套,6.5 嵌套结构,For i =1 To 10,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 NextEnd Sub,循环嵌套的执行流程:,6.5 嵌套结构,Private Sub Form_Click()循环嵌套的,6.5 嵌套结构,Private SubCommand1_Click() Dim x%, a%,y% For x = 1 to 2 a=0 For y = 1 to x+1 a = a+1 Next y Print a; Next xEnd Sub程序运行后,单击命令按钮,在窗体上显示的值是 ( 2 3 ),6.5 嵌套结构Private SubCommand1_Cl,6.5 嵌套结构,Exit Do和Exit For语句在循环嵌套时的作用,6.5 嵌套结构Exit Do和Exit For语句在循环嵌,6.5 嵌套结构,6.5 嵌套结构,例:打印九九乘法表. For i = 1 To 9 For j = 1 To 9 se = i Next j Picture1.Print Next i,6.5 嵌套结构,例:打印九九乘法表.6.5 嵌套结构,6.5 嵌套结构,例:,编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个三位数,其各位数字立方和等于该数字本身。例如,153是水仙花数,因为:,6.5 嵌套结构例: 编一程序,显示出所有的水仙花数。所,6.5 嵌套结构,Private Sub Form_Click() Dim i As Integer, j As Integer, k As Integer Dim n As Integer For i = 1 To 9 i表示百位上的数 For j = 0 To 9 j表示十位上的数 For k = 0 To 9 k表示个位上的数 n = i * 100 + j * 10 + k If i 3 + j 3 + k 3 = n Then Print n Next k Next j Next iEnd Sub,解法一:,6.5 嵌套结构Private Sub Form_Click,6.5 嵌套结构,解法二:,Private Sub Form_Click() Dim i As Integer, j As Integer, k As Integer Dim n As Integer For n = 100 To 999 i = n 100 得到百位上的数字 j = n 10 - i * 10 得到十位上的数字 k = n Mod 10 得到个位上的数字 If i 3 + j 3 + k 3 = n Then Print n Next nEnd Sub,6.5 嵌套结构解法二:Private Sub Form_C,6.5.2 循环结构与选择结构的嵌套,在循环结构中可以完整嵌套选择结构,即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。,6.5 嵌套结构,6.5.2 循环结构与选择结构的嵌套 在循环,(1)For I= IF Then End IF Next I,(6) IF Then For I= End IF Next I,(5)Select Case For I= Case Case Next I End Select,(3)For I= IF Then Next I End IF,(2)IF Then For I= Next I End IF,(4)For I= Select Case Case Case End Select Next I,6.5 嵌套结构,(1)For I=(6) IF Then (5)S,6.6强制退出循环,6.6.1用Exit for语句强制退出For循环,Exit For 语句可以使程序从For循环中退出来,转到Next语句后面的程序继续执行,而不必等到循环变量到达终值时才退出来。注意:在循环体外面,不可以使用Exit For 语句,而且Exit For通常与IF语句一起使用。例:用300元买100只鸡,母鸡9元1只,小鸡1元1只,问母鸡、小鸡各应买多少只?分析:设买母鸡x只,则x的变化范围为130只,因为买的母鸡只数不可能超过30只,超过30只就不可能买到100只鸡。设小鸡为y只,则y=100-x。下面要做的工作就是求x为何值时,9x+y=300成立。,6.6强制退出循环6.6.1用Exit for语句强制退出F,6.6强制退出循环,程序代码:Option ExplicitPrivate Sub Form_Click()Dim x as IntegerDim y as IntegerFor x=1 to 30 Y=100-x If 9*x+y=300 then Exit forNext xPrint “母鸡有”;x;”只”,”小鸡有”;y;”只” End Sub,6.6强制退出循环程序代码:,6.6强制退出循环,6.6.2用Exit Do语句强制退出Do循环Exit Do语句可以使程序从Do循环中退出来,转到Loop语句后面的程序继续执行,而不必等到循环达到结束条件时才退出来。注意:在循环体外面,不可以使用Exit Do 语句,而且Exit Do通常与IF语句一起使用。例:用Do While循环改写上例程序,体会Exit Do语句的作用,6.6强制退出循环6.6.2用Exit Do语句强制退出Do,6.6强制退出循环,程序代码:Option ExplicitPrivate Sub Form_Click()Dim x as IntegerDim y as IntegerX=1Do while x= 30 Y=100-x If 9*x+y=300 then Exit DoLoopPrint “母鸡有”;x;”只”,”小鸡有”;y;”只” End Sub,6.6强制退出循环程序代码:,6.7 应用举例,例: 判断一个给定的整数是否为素数。,算法思路:素数指除了能被1和自身外,不能被其他整数整除的自然数。判断整数N是不是素数的基本方法是:将N分别除以2,3,N-1,若都不能整除,则N为素数。因为N=Sqr(N)*Sqr(N),所以,当N能被大于等于Sqr(N)的整数整除时,一定存在一个小于等于Sqr(N)的整数,使N能被它整除,因此只要判断N能否被2,3,Sqr(N)整除即可。 算法流程图如下:,6.7 应用举例例: 判断一个给定的整数是否为素数。,Dim N %, I%, K%N = Val(InputBox(N=?)K= Int(Sqr(N)For I = 2 To K If N Mod I = 0 Then Exit ForNext IIf IK Then Print N; 是素数Else Print N; 不是素数End If,算法流程图,程序代码:,6.7 应用举例,Dim N %, I%, K%算法流程图程序代码:6.7,6.7 应用举例,例:将一角钱换成零钱(可以包括含1分、2分、5分中的任意多个面值),共有多少种换法? 组成一角的零钱中,最多有10个1分、5个2分、2个5分。判断所有的组合中,总和正好是一角(10分)的情况有多少次即为所求。这类方法称为“穷举法”,也称为“列举法”。,6.7 应用举例例:将一角钱换成零钱(可以包括含1分、2,6.7 应用举例,6.7 应用举例,6.7 应用举例,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,6.7 应用举例Private Sub Command1_,几种循环语句比较,本章小结,几种循环语句比较 本章小结,

    注意事项

    本文(vb控制结构循环结构程序设计课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开