vb控制结构-循环结构程序设计_第1页
vb控制结构-循环结构程序设计_第2页
vb控制结构-循环结构程序设计_第3页
vb控制结构-循环结构程序设计_第4页
vb控制结构-循环结构程序设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章VB控制结构 2 循环结构程序设计 本章内容及要求 1 掌握For Next语句及ExitFor语句的使用 2 掌握Do Loop循环语句与ExitDo语句的使用 3 掌握循环结构的嵌套应用 4 掌握循环结构和选择结构的嵌套应用 6 1概述 在VisualBasic程序设计中 实现循环结构的语句主要有下列几种 lFor Next语句Do Loop语句lWhile Wend语句 DoWhile Loop形式Do LoopWhile形式DoUntil Loop形式Do LoopUntil形式Do Loop形式 打印九九乘法表DimSgsAsStringDimi jAsIntegerFori 1To9 被乘数从1变到9Forj iTo9 乘数从1变到9Sgs iNextjPicture1 PrintNextI For循环语句 一般用于循环次数已知 形式 For循环变量 初值to终值 Step步长 语句块 ExitFor 语句块Next 循环变量 6 2For Next循环结构 循环次数 例 ForI 2To13Step3PrintI NextIPrint I I 循环执行次数4输出I的值分别为 25811出了循环输出为 I 14 6 2For Next循环结构 6 2For Next循环结构 注意跳出FOR循环时的循环变量的值 Fori 1to10step1s s iNextiPrinti Fori 1to 10step 1s s iNextiPrinti 6 2For Next循环结构 注意对于For Next语句来说 一旦进入循环 其 终止值 和 增量 便不会再改变了 PrivateSubForm Click DimiAsInteger jAsInteger kAsIntegerj 10 k 1Fori 1TojStepkPrintij j 1k k 1NextPrintj kEndSub 练习 分析下面程序段结束时窗体上显示的值是多少 2 i2 0Fori 1To 2Step 1i2 i2 1NextPrinti i2 34 1 Fori 1To10i2 i2 1NextPrinti 11 3 i2 0Fori 1To5Step2i2 i2 1NextPrinti 7 4 i2 1Fori 1To10i i 1i2 i2 1NextPrinti i2 116 5 i2 1i3 10i 10Fori 1Toi3i i 1i2 i2 1i3 i3 1NextPrinti i2 116 6 i2 0Fori 1To10i2 i2 1Ifi 6ThenExitForNextPrinti i2 77 7 i2 0i 10Doi2 i2 1LoopWhilei i2Printi2 1 例6 7编程计算 S 1 2 3 100 DimS I S 0 累加前变量S为0ForI 1to100S S INextIPrint S S 例6 7的算法流程图 6 2For Next循环结构 前测型 DoWhile语句块 ExitDo 语句块Loop Do Loop循环语句使用形式 6 3Do Loop循环结构 6 2Do Loop循环结构 PrivateSubForm Click DimiAsInteger DimaAsInteger 定义所需变量i 0 a 0 给变量赋初值0 这两条语句可省略DoWhilei 100i i 1 每次循环 变量i都增加1a a i 每次循环 变量a都加变量i的值LoopPrinta 计算完毕 变量a的值即为所求EndSub 例 使用DoWhile Loop循环语句计算1 2 3 100的值 后测型 Do语句块 ExitDo 语句块LoopWhile 6 3Do Loop循环结构 6 3Do Loop循环结构 例 使用Do LoopWhile循环语句计算1 2 3 n的值 n的值由文本框输入 PrivateSubCommand1 Click DimiAsInteger nAsInteger aAsInteger 定义所需变量n Text1 Text 得到输入的值Doi i 1 每次循环 变量i都增加1a a i 每次循环 变量a都加变量i的值LoopWhilei nText2 Text a 显示计算结果 变量a的值即为所求EndSub 前测型 DoUntil语句块 ExitDo 语句块Loop Do Loop循环语句使用形式 6 3Do Loop循环结构 6 3Do Loop循环结构 例 计算阶乘n 的值 n的值由文本框输入 PrivateSubCommand1 Click DimiAsInteger nAsIntegerDimaAsLongn Text1 Text 得到输入的值na 1 必须为变量a赋初值1DoUntili ni i 1 每次循环 变量i都增加1a a i 每次循环 变量a都乘以变量i的值LoopText2 Text a 计算完毕 变量a的值即为所求EndSub 后测型 Do语句块 ExitDo 语句块LoopUntil 6 3Do Loop循环结构 例 使用级数求 的值 根据下式 计算圆周率 的近似值 当计算到绝对值小于0 0001的通项时 认为满足精度要求 停止计算 4 1 1 3 1 5 1 7 1 n 11 2n 1 6 3Do Loop循环结构 PrivateSubcmdPi Click DimaAsSingle 变量a保存通项之和DimmAsSingle 变量m保存通项的绝对值DimsAsInteger 变量s产生通项的符号DimiAsInteger 变量i产生通项的分母s 1 第一项符号为正i 1 第一项为1Do 开始循环m 1 i 计算通项的绝对值a a s m 总和加上一个通项i i 2 产生下一个通项分母s s 轮流转换通项的正负号LoopUntilm 0 0001 测试是否满足精度要求Text1 Text a 4 输出计算结果EndSub 6 3Do Loop循环结构 6 3Do Loop循环结构 Do语句块 ExitDo 语句块Loop PrivateSubCommand1 Click DimiAsInteger nAsIntegerDimaAsLongn val Text1 Text a 1Doi i 1a a iIfi nThenExitDoLoopText2 Text aEndSub 例6 5 计算n 本节小结 1 当使用While构成循环时 当条件为 真 则反复执行循环体 当条件为 假 则退出循环 2 当使用Until构成循环时 当条件为 假 则反复执行循环体 直到条件成立 即为 真 时 则退出循环 3 在循环体内一般应有一个专门用来改变条件表达式中变量的语句 以使随着循环的执行 条件趋于不成立 或成立 最后达到退出循环 4 语句ExitDo的作用是退出它所在的循环结构 它只能用在DO Loop结构中 并且常常是同选择结构一起出现在循环结构中 用来实现当满足某一条件时提前退出循环 6 3Do Loop循环结构 思考 将一个十进制数转换成二进制 算法流程图 6 3Do Loop循环结构 用Do Loop循环的五种形式分别完成 将一个十进制数转换成二进制 算法流程图 6 3Do Loop循环结构 分析 将一个十进制数转换成二进制采用连除2取余数的方法 即将十进制数除以2取余数 直到商为0 然后所得的余数即为二进制数各位的数码 从右到左排列 第一次除2的余数在最右边 算法设计如下 用变量Dec表示十进制数 Bin表示转换所得的二进制数字符串 1 输入十进制Dec 2 Dec除以2得余数Res 商又赋值给Dec 让Bin Res Bin 3 若Dec 0 则算法结束 否则执行 2 将一个十进制数转换成二进制的程序如下 PrivateSubForm Click DimDecAsInteger 表示十进制数DimBinAsString 转换为二进制表示DimResAsIntegerDec Val InputBox 输入一个十进制数Dec Print 十进制数 DecDoRes DecMod2 求出除以2的余数Bin ResBinEndSub 6 3Do Loop循环结构 6 4 1While Wend语句使用格式如下 WhileWend说明 该语句的功能与DoWhile Loop实现的循环完全相同 6 4While Wend语句 6 5 1循环的嵌套 多重循环结构如果在一个循环内完整地包含另一个循环结构 则称为多重循环 或循环嵌套 嵌套的层数可以根据需要而定 嵌套一层称为二重循环 嵌套二层称为三重循环 上面介绍的几种循环控制结构可以相互嵌套 下面是几种常见的二重嵌套形式 6 5嵌套结构 1 ForI ForJ NextJ NextI 2 ForI DoWhile Until Loop NextI 3 DoWhile ForJ NextJ Loop 4 DoWhile Until DoWhile Until Loop Loop 6 5嵌套结构 对于循环的嵌套 要注意以下事项 1 内循环变量与外循环变量不能同名 2 外循环必须完全包含内循环 不能交叉 下面是正确的嵌套 6 5嵌套结构 Fori 1To10Forj 1To20 NextiNextj Fori 1To10Fori 1To20 NextiNexti 下面是不正确的嵌套 6 5嵌套结构 PrivateSubForm Click DimiAsInteger jAsIntegerFori 1To3Print i iForj 1To3PrintTab j jNextNextEndSub 循环嵌套的执行流程 6 5嵌套结构 6 5嵌套结构 PrivateSubCommand1 Click Dimx a y Forx 1to2a 0Fory 1tox 1a a 1NextyPrinta NextxEndSub程序运行后 单击命令按钮 在窗体上显示的值是 23 6 5嵌套结构 ExitDo和ExitFor语句在循环嵌套时的作用 6 5嵌套结构 例 打印九九乘法表 Fori 1To9Forj 1To9se iNextjPicture1 PrintNexti 6 5嵌套结构 6 5嵌套结构 例 编一程序 显示出所有的水仙花数 所谓水仙花数 是指一个三位数 其各位数字立方和等于该数字本身 例如 153是水仙花数 因为 6 5嵌套结构 PrivateSubForm Click DimiAsInteger jAsInteger kAsIntegerDimnAsIntegerFori 1To9 i表示百位上的数Forj 0To9 j表示十位上的数Fork 0To9 k表示个位上的数n i 100 j 10 kIfi 3 j 3 k 3 nThenPrintnNextkNextjNextiEndSub 解法一 6 5嵌套结构 解法二 PrivateSubForm Click DimiAsInteger jAsInteger kAsIntegerDimnAsIntegerForn 100To999i n 100 得到百位上的数字j n 10 i 10 得到十位上的数字k nMod10 得到个位上的数字Ifi 3 j 3 k 3 nThenPrintnNextnEndSub 6 5 2循环结构与选择结构的嵌套 在循环结构中可以完整嵌套选择结构 即整个选择结构都属于循环体 在选择结构中嵌套循环结构时 则要求整个循环结构必须完整地嵌套在一个分支内 一个循环结构不允许出现在两个或两个以上的分支内 6 5嵌套结构 1 ForI IF Then EndIF NextI 6 IF Then ForI EndIF NextI 5 SelectCase ForI Case Case NextI EndSelect 3 ForI IF Then NextI EndIF 2 IF Then ForI NextI EndIF 4 ForI SelectCase Case Case EndSelect NextI 6 5嵌套结构 6 6强制退出循环 6 6 1用Exitfor语句强制退出For循环 ExitFor语句可以使程序从For循环中退出来 转到Next语句后面的程序继续执行 而不必等到循环变量到达终值时才退出来 注意 在循环体外面 不可以使用ExitFor语句 而且ExitFor通常与IF语句一起使用 例 用300元买100只鸡 母鸡9元1只 小鸡1元1只 问母鸡 小鸡各应买多少只 分析 设买母鸡x只 则x的变化范围为1 30只 因为买的母鸡只数不可能超过30只 超过30只就不可能买到100只鸡 设小鸡为y只 则y 100 x 下面要做的工作就是求x为何值时 9x y 300成立 6 6强制退出循环 程序代码 OptionExplicitPrivateSubForm Click DimxasIntegerDimyasIntegerForx 1to30Y 100 xIf9 x y 300thenExitforNextxPrint 母鸡有 x 只 小鸡有 y 只 EndSub 6 6强制退出循环 6 6 2用ExitDo语句强制退出Do循环ExitDo语句可以使程序从Do循环中退出来 转到Loop语句后面的程序继续执行 而不必等到循环达到结束条件时才退出来 注意 在循环体外面 不可以使用ExitDo语句 而且ExitDo通常与IF语句一起使用 例 用DoWhile循环改写上例程序 体会ExitDo语句的作用 6 6强制退出循环 程序代码 OptionExplicitPrivateSubForm Click DimxasIntegerDimyasIntegerX 1Dowhilex 30Y 100 xIf9 x y 300thenExitDoLoopPrint 母鸡有 x 只 小鸡有 y 只 EndSub 6 7应用举例 例 判断一个给定的整数是否为素数 算法思路 素数指除了能被1和自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论