《VB循环结构程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《VB循环结构程序设计ppt课件.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物u 程序的另一种结构是循环结构程序的另一种结构是循环结构u 循环结构作用是重复执行一段程序循环结构作用是重复执行一段程序u 循环是有条件的、次数是有限的循环是有条件的、次数是有限的u VB的循环语句:的循环语句:ForNext、Do WhileLoop For EachNext、WhileWend u 应用最多的:应用最多的:ForNext与与Do WhileLoop采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保
2、证切口面的圆度,保持熔接部位干净无污物uForNext循环一般应用于循环次数已知的场合循环一般应用于循环次数已知的场合 For = 初值初值 To 终值终值 Step 步长步长 语句块(循环体)语句块(循环体) Next 循环变量循环变量 u工作原理工作原理 循环变量循环变量=初值初值循环变量超出范围?循环变量超出范围?循环体循环体循环变量增加一个步长循环变量增加一个步长NoYesStep缺省为缺省为 1 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例3.9 求求1+3+5+7+99Private Su
3、b Form_Click() Dim Sum As Integer, I As Integer Sum = 0 保存累加和,先清零保存累加和,先清零 For I = 1 To 99 Step 2 Sum = Sum + I Next I MsgBox 1+3+5+99= & Sum, , 求和求和End Sub 本例的特点是数据本例的特点是数据项之间相差项之间相差2, 即即Step的值为的值为2 思考:思考:例中当输出对话框出现时,例中当输出对话框出现时,I 的值是多少?的值是多少?如果省略如果省略Step 2,程序的结果如何?,程序的结果如何?For语句能不能改写成语句能不能改写成For I
4、=99 To 1 Step -2 ? 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 例例3.10 求平均成绩求平均成绩 Const N = 10 学生人数学生人数Private Sub Form_Click() Dim Sum As Integer, I As Integer Dim Data As Integer, Average As Single Sum = 0 存放累加值的变量清零存放累加值的变量清零 For I = 1 To N 循环循环40次,步长值为次,步长值为1省略省略 Data = In
5、putBox(输入第输入第 & I & 位同学的成绩位同学的成绩, 求平均分求平均分) Sum = Sum + Data Next I Average = Sum / N MsgBox 全班全班 & N & 名学生的平均分为名学生的平均分为 & Average, , 求平均分求平均分End Sub 确确定定本例的循环变量本例的循环变量 I 控制人数控制人数 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物1. 当型循环当型循环 Do While 循环体循环体Loop Do 循环体循环体Loop While 条
6、件表达式条件表达式成立?成立?循环体循环体NoYes条件表达式条件表达式成立?成立?循环体循环体NoYes先判断后执行先判断后执行 先执行后判断先执行后判断特点:条件表达式特点:条件表达式成立执行成立执行循环体内容循环体内容 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例3.12 计算平均分计算平均分 Private Sub Form_Click() Dim Data As Integer, Sum As Integer, N As Integer Dim Average As Single Sum =
7、 0 : N = 0 Data = InputBox(输入第输入第 & N + 1 & 个同学的成绩个同学的成绩, 求平均分求平均分) Do While Data -1 -1表示结束输入表示结束输入 Sum = Sum + Data N = N + 1 Data = InputBox(输入第输入第 & N + 1 & 个同学的成绩个同学的成绩, 求平均分求平均分) Loop Average = Sum / N MsgBox N & 位同学的平均分为位同学的平均分为 & Average, , 求平均分求平均分End Sub采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断
8、管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例3.13 Sum=1+2+3+N 求求Sum不超过不超过10000的最大整数值和数据项数的最大整数值和数据项数N Private Sub Form_Click() Dim Sum, N As Integer N = 0 开始时项数为开始时项数为0 Sum = 0 保存累加值的变量保存累加值的变量Sum清零清零 Do While Sum = 10000 N = N + 1 Sum = Sum + N Loop Sum = Sum - N N = N - 1 Print Sum=; Sum, N=; N End Sub当当Sum的值超
9、出的值超出10000时循环才时循环才终止。因此终止。因此Sum值要减去多加的值要减去多加的一个一个N;而在循环过程中,;而在循环过程中,N也也被多加了一个被多加了一个1,需要减去。,需要减去。 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2. 直到型循环直到型循环 Do Until 循环体循环体Loop Do 循环体循环体Loop Until 特点:条件表达式特点:条件表达式不成立执行不成立执行循环体内容循环体内容 先判断后执行先判断后执行 条件表达式条件表达式成立?成立?循环体循环体NoYes先执行后判
10、断先执行后判断条件表达式条件表达式成立?成立?循环体循环体NoYes采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 例例3.14计算平均分计算平均分( (要求同要求同例例4.12) ) Private Sub Form_Click() Dim Data As Integer, Sum As Integer, N As Integer Sum = 0 : N = 0 Data = InputBox(输入成绩输入成绩, 计算总分计算总分) Do Until Data = -1 Sum = Sum + Data
11、N = N + 1 Data = InputBox(“输入成绩输入成绩, 计算总分计算总分) Loop Print 全班平均分为全班平均分为:; Sum / NEnd Sub Do While Data -1 Sum = Sum + Data N = N + 1 Data = InputBox(“输入成绩输入成绩, 计算总分计算总分) Loop采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物两重循环两重循环:在一个循环的循环体中还包含另一个循环:在一个循环的循环体中还包含另一个循环例例3.15 在窗体上显示一
12、个几何图形在窗体上显示一个几何图形Private Sub Form_Click() Dim I, J As Integer I、J为循环变量为循环变量 For I = 1 To 8 I 控制行数控制行数(8行行) Print Tab(10 - I); 定每行定每行*的起始位的起始位 For J = 1 To I J 控制每行输出控制每行输出I个个* Print *; Next J Print 换行换行 Next IEnd Sub注意:两重循环不能形成交叉注意:两重循环不能形成交叉 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保
13、持熔接部位干净无污物例例3.16 输出乘法口诀表输出乘法口诀表Private Sub Form_Click() Dim I As Integer, J As Integer, M As Integer For I = 1 To 9 For J = 1 To I M = I * J Print J & * & I & = & M & ; Next J Print 打印换行打印换行 Next IEnd Sub采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例3.17 计算计算 Private Sub Form_
14、Click() Dim I As Integer, J As Integer Dim F As Long 阶乘值用长整型保存阶乘值用长整型保存 Dim e As Double For I = 0 To 10 F = 1 每个阶乘值先置每个阶乘值先置1以便累乘以便累乘 For J = 1 To I F = F * J Next J e = e + 1 / F Next I Print e=; e End Sub!101.! 31! 21! 111e本循环计算本循环计算F= I!采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接
15、部位干净无污物多重循环多重循环:循环次数在两重以上的循环结构:循环次数在两重以上的循环结构 例例3.19 计算计算将将1角钱兑换成零钱有多少种方案角钱兑换成零钱有多少种方案 Private Sub Form_Click() Dim I, J, K, S As Integer S = 0 统计兑换统计兑换1角钱的方案数角钱的方案数 For I = 0 To 10 1分钱个数分钱个数 For J = 0 To 10 Step 2 2分钱个数分钱个数 For K = 0 To 10 Step 5 5分钱个数分钱个数 If I + J + K = 10 Then S = S + 1 Next K Ne
16、xt J Next I MsgBox 1角钱兑换成零钱的方案有角钱兑换成零钱的方案有 & S & 种种, , 兑换零钱兑换零钱End Sub1角钱以下的硬币有角钱以下的硬币有1分、分、2分和分和5分种分种1角钱全换成角钱全换成1分需分需10个个1角钱全换成角钱全换成2分需分需5个个1角钱全换成角钱全换成5分需分需2个个 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物1. Exit语句语句Exit Do:跳出:跳出DoLoop循环循环Exit For:跳出:跳出ForNext循环循环例例4.20 判断一个正整
17、数是否为素数判断一个正整数是否为素数(质数质数) N = InputBox(请输入一个正整数请输入一个正整数, 验证素数验证素数) For I = 2 To N - 1 If N Mod I = 0 Then Exit For End If Next I If I = N Then MsgBox N & 是素数是素数, , 验证素数验证素数 Else MsgBox N & 不是素数不是素数, , 验证素数验证素数 End If 素数素数:一个正整数:一个正整数N除了能被除了能被1和自身所整和自身所整除外,不能被其它任除外,不能被其它任何数所整除何数所整除。 采用PP管及配件:根据给水设计图配置
18、好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2. End语句语句uEnd:终止程序的运行:终止程序的运行uEnd Sub:终止一个过程;:终止一个过程;uEnd Function:终止函数过程:终止函数过程uEnd If:终止条件语句:终止条件语句uEnd Type:终止类型声明:终止类型声明uEnd Select:终止情况语句:终止情况语句uEnd Property:终止属性过程:终止属性过程uEnd With:终止:终止With语句语句例如:例如:Private Sub Command1_Click() EndEnd Sub 采用PP管
19、及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物u 功能:无条件转向功能:无条件转向u 格式:格式:Goto label称为语句标号称为语句标号( (数字或标识符数字或标识符) )例例3.22 求若干个同学的成绩总分求若干个同学的成绩总分 Private Sub Form_Click() Dim Data, Sum As Integer Sum = 0 loop1: Data = InputBox(输入成绩输入成绩) If Data = -1 Then GoTo loop2 Else Sum = Sum + Data
20、GoTo loop1 End If loop2: Print 总分总分=; Sum End Sub Goto语句不符合结语句不符合结构化程序设计的要求,构化程序设计的要求,所以不提倡使用。所以不提倡使用。 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 语法错误语法错误 运行错误运行错误中文逗号中文逗号n n未赋过值未赋过值逻辑错误:算法不正确。逻辑错误:算法不正确。显然系统不会报告这类出错信息显然系统不会报告这类出错信息。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪
21、边旋转,以保证切口面的圆度,保持熔接部位干净无污物方法:在程序中适当插入方法:在程序中适当插入Print语句跟踪变量值的变化语句跟踪变量值的变化 应该是应该是6与与24 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物1. 断点调试断点调试 断点断点:程序执行到该此自动暂停:程序执行到该此自动暂停 单击单击“继续继续”按钮按钮 ,程序可继续执行。程序可继续执行。 设置断点:在代码窗口中单设置断点:在代码窗口中单击该语句左侧的阴影边框。击该语句左侧的阴影边框。 暂停时,将鼠标指针移动到暂停时,将鼠标指针移动到程
22、序中的各个变量上略作停留,程序中的各个变量上略作停留,系统将以浮动标签的方式显示系统将以浮动标签的方式显示该变量的值。该变量的值。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2. 逐语句执行逐语句执行 启动逐语句执行:启动逐语句执行:“调试调试逐语句逐语句” ” 或或 按按F8 终止终止逐语句执行逐语句执行: “调试调试跳出跳出” ” 3. 使用立即窗口使用立即窗口 程序运行处于暂停状态时,程序运行处于暂停状态时, 在立即窗口中输入:在立即窗口中输入: Print 或或 ? 4. 逐过程逐过程 启动逐过程执行:启动逐过程执行:“调试调试逐过程逐过程”或或 按按Shift+F8 终止终止逐过程执行逐过程执行: “调试调试跳出跳出”