vb第5章 循环结构程序设计.ppt_第1页
vb第5章 循环结构程序设计.ppt_第2页
vb第5章 循环结构程序设计.ppt_第3页
vb第5章 循环结构程序设计.ppt_第4页
vb第5章 循环结构程序设计.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第5章循环结构程序设计 实现语句 计数循环 For Next 当循环 While Wend Do循环 Do Loop 在指定条件下多次反复执行一组语句 实现循环结构程序设计 5 1For循环语句5 2当循环语句5 3Do Loop循环语句5 4多重循环5 5GoTo型控制语句5 6列表框 组合框和滚动条5 7应用举例 5 1For循环语句 For循环变量 初值To终值 Step步长 语句块 ExitFor 语句块Next 循环变量 计数循环 循环次数已知 循环变量 一个数值变量 初值 终值和步长 数值表达式 常量 变量或运算式 说明 T F 循环变量得初值 循环变量加步长 循环变量在终值内 语句块 ExitFor 语句块 循环次数 Fori 2To13Step3Printi Nexti 循环执行次数 25811i 14 省略 For循环变量 初值To终值 Step步长 语句块 ExitFor 语句块Next 循环变量 T F 循环变量得初值 循环变量加步长 循环变量在终值内 语句块 ExitFor 语句块 说明 循环体 For和Next之间 每次循环被重复执行的部分 ExitFor 强制退出循环 可放置在循环体的任意处 数量不限 在条件语句中使用 在循环体内 可以引用循环变量 但如果改变了循环变量的值 容易引起意外的错误 Fori 1To5i i 1Nexti 循环次数 3 练习 分析下面程序段结束时窗体上显示的值是多少 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 6 i2 1i3 10i 10Fori 1Toi3i i 1i2 i2 1i3 i3 1NextPrinti i2 i3 11615 5 i2 0Fori 1To10i2 i2 1Ifi 6ThenExitForNextPrinti i2 77 例5 2 求n 其中n值由用户指定 P92 典型的求乘积问题 循环体前 置结果变量result 1循环体内 result result i 进行累积 思考 N最大可取到多少 为什么 DimresultAsIntegern Val InputBox 请输入n的值 result 1Fori 1Tonresult result i 求累积Nexti Step 1 7 32767 求1 n阶乘的和 sum 0Fori 1Tonresult result isum sum resultNexti 例5 11 求1 3 5 7 9 的值 sum 0result 1Fori 1To9result result iNexti 程序 单重循环 PrivateSubForm Click DimiAsInteger jAsIntegerDimresultAsLong sumAsLongsum 0Fori 1To9Step2result 1Forj 1Toiresult result jNextjNextiPrintPrint 1 3 9 sumEndSub 程序 双重循环 sum sum result result i IfiMod2 1Thensum sum result 例5 3 由键盘输入10个数 打印出所有的负数 并计算和输出负数的和与个数 典型的求和与计数问题 在进入循环前置结果变量result 0 循环体内 result result num 求和 cc cc 1 计数 result 0 cc 0Fori 1To10num Val InputBox 请输入一个要处理的数 Ifnum 0Then 是负数吗 Printnum num 计数 求和ElsePrintnum 输出整数EndIfNexti cc cc 1 result result num 5 4多重循环 循环体内又放置循环语句称为多层循环或嵌套循环 1 外循环必须完全包含内循环 不能出现交叉 2 为了便于阅读与排错 内层的控制结构右缩进 正确的嵌套 错误的嵌套 Fori 1To5Forj 1ToiPrint NextjPrintNexti Fori 1To5Forj 1ToiPrint NextiPrintNextj 5 4多重循环 Fori 1to6Forj 1to10 NextiNextj 4 当内外层循环终点相同时 可以共用一个Next语句 但循环变量名不能省略 如 Fori 1to6Forj 1to10 Nextj i 错误 3 内循环变量和外循环变量不能同名 循环嵌套的执行流程 1PrivateSubForm Click 2DimiAsInteger jAsInteger3Fori 1To34Print i i5Forj 1To36PrintTab j j7Next8Next9EndSub 外层循环执行一次 如i 1 内层循环要从头循环一遍 如j 1 j 2 j 3 打印九九乘法表 例5 6 打印直角三角形状 九九乘法口诀表 口诀表由双重循环实现 外层循环j每取一个值 打印口诀表的一行 内层循环k控制打印口诀表一行中的各列 Print PrintTab 20 九九乘法口诀表 PrintTab 19 Fori 1To9PrintTab i 6 i NextiPrintForj 1To9Printj Fork 1Tojtemp j kPrintTab k 6 temp NextkPrintNextj 结束一行 结束一行 例5 13 PrivateSubForm Click DimiAsInteger jAsIntegerFori 1To5 控制行Forj 1ToiPrint NextjPrint 换行NextiEndSub 输出图形 PrintTab 8 i Forj 1To2 i 1Print Nextj PrintString i PrintTab i Forj 1To11 2 iPrint Nextj a b c 5 2当循环语句 For循环 执行指定的次数 当循环 在给定的条件为真时重复执行 While条件语句块Wend 流程图 什么情况下用 由数据的某个条件来控制循环次数 例5 4 从键盘上输入字符 对输入的字符进行计数 当输入的字符是 时 停止计数 并输出结果 Constch msg Enteracharacter char InputBox msg 输入第一个字符Whilecharch 判断输入字符是否 Counter Counter 1 计数Printchar char InputBox msg 输入下一个字符Wend 5 3Do Loop 相同点当 条件 为True或非零数值时 执行 语句块 当 条件 值为False或零值时 跳出循环 不同点前测式 第一次计算 条件 为False 则 语句块 不会被执行 后测式 语句块 至少被执行一次 条件 语句块 True False DoWhile Loop形式 条件 语句块 True False Do LoopWhile形式 DoWhile条件表达式语句块Loop Do语句块LoopWhile条件表达式 i2 0i 10Doi2 i2 1LoopWhilei i2Printi2 1 i2 0i 10DoWhilei i2i2 i2 1LoopPrinti2 0 1 当型循环 的前测式 2 当型循环 的后测式 5 3Do Loop循环语句 与 当循环 不同点 条件 为False 执行 语句块 条件 为True 跳出循环 两种不同形式的区别前测式 语句块 可能一次都不被执行到 后测式 语句块 至少被执行一次 条件 语句块 False True 条件 语句块 False True DoUntil Loop形式 Do LoopUntil形式 DoUntil条件表达式语句块Loop 3 直到型循环 的前测式 Do语句块LoopUntil条件表达式 4 直到型循环 的后测式 Do 语句块 Loop 不断地执行 语句块 无穷循环 在循环体中增加条件语句跳出循环 5 3Do Loop循环语句 DoUntilp 7000000000 p p 1 r n n 1LoopPrintn 年后 世界人口达 pEndSub SubForm Click DimpAsdoubleDimrAssingledimnAsIntegerp 6000000000 r 0 014n 0 例5 5 世界人口约60亿 如果以每年1 4 的速度增长 多少年后世界人口达到或超过70亿 DoWhilep 7000000000 例5 7 编写程序 输出100 300所有的素数 P96 素数 质数 大于2并且只能被1和本身整除的整数 判断w能否被 2 w 1 中的整数整除 能否被 2 Sqr w 中的整数整除 k Int Sqr n i 2swit 0Whilei kAndswit 0IfnModi 0Thenswit 1Elsei i 1EndIfWend 标志变量 是否为素数是 0 否 1 Fori 2TokIfnModi 0Thenswit 1 ExitForNexti Ifswit 0Thend d 1IfdMod5 0ThenPrintn PrintElsePrintn EndIfEndIf 5 5GoTo型控制语句 1 GoTo语句 格式 GoTo 功能 无条件地使程序的执行转到 标号或行号 所指定的那行语句 说明 1 标号 是一个以英文字母开头 以冒号结尾的标识符 行号 是一个整型数 不以冒号结尾 例如 Start 一个标号1200一个行号 2 GoTo语句中的标号和行号都必须与GoTo语句出现在同一个过程中 并且是唯一的 3 使用GoTo语句 容易使程序结构不清晰 可读性差 在结构化程序设计中应尽量少用或不用GoTo语句 改变程序执行的顺序 无条件地控制程序转向 5 6列表框 组合框和滚动条 5 6 1列表框和组合框 选择控件 提供多个选项供用户选择 达到交互的目的 把可以选择的项目列出来 不能直接修改项目 列表框和文本框的组合 可以选择 输入数据 三种类型 由Style决定 0 下拉式组合框 默认1 简单组合框2 下拉式列表框 列表框 组合框 三种类型 5 6列表框 组合框和滚动条 列表框和组合框共有的属性 列表框特有的属性 5 6列表框 组合框和滚动条 AddItem对象 AddItemitem index RemoveItem对象 RemoveItemindexClear对象 Clear说明 对象 可是列表框 组合框或剪贴板 方法 例5 8 用组合框制作一个国家选择窗口 PrivateSubForm Load STR COUNTRY 1 中国 STR COUNTRY 2 美国 STR COUNTRY 3 日本 ForI 1To3Combo1 AddItemSTR COUNTRY I NextIEndSub PrivateSubCMDOK CLICK MsgBox 您选中的国家是 Combo1 Text 64 选中国家消息框 EndSub 5 6 2滚动条 5 6列表框 组合框和滚动条 在项目列表很长或信息量很大时 协助观察数据或确定位置 两种 垂直滚动条和水平滚动条 垂直滚动条 水平滚动条 5 6列表框 组合框和滚动条 事件 Scroll 拖动滑块时触发 Change Value属性改变时触发 SubhsbSpeed Change txtSpeed Text hsbSpeed ValueEndSub 例5 9a 用一个文本框 txtSpeed 显示滚动条 hsbSpeed 滑块当前位置所代表的值 PrivateSubhsbSpeed Scroll txtSpeed Text hsbSpeed ValueEndSub 5 6列表框 组合框和滚动条 例5 9 设计一个调色板程序 用合成的颜色设置BackColor属性 PrivateSubHScroll1 Change Red HScroll1 ValueGreen HScroll2 ValueBlue HScroll3 ValueText1 BackColor RGB Red Green Blue EndSub Text2 ForeColor Text1 BackColor Text2 BackColor Text1 BackColor RGB指定红 绿 蓝三原色的相对亮度 生成一个特定颜色 参数 0 255 5 7应用举例 累加 累积 根据某项值的精度来控制循环的结束 阶乘 n n i当前项为t 1 n累加 e e t 例5 10 求自然对数e的近似值 要求其误差小于0 00001 近似公式为 e 1 1 1 1 2 1 3 1 n P104 思考 若把置各变量初值的语句放在循环体内 程序运行时会产生什么情况 PrivateSubForm Click Dimi neEndSub 例5 12 输出斐波纳契数列的前40项以及它们的和 f1 0 n 1 f2 1 n 2 fn fn 1 fn 2 n 3 Privat

温馨提示

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

评论

0/150

提交评论