VB程序设计基础循环结构.pptx





《VB程序设计基础循环结构.pptx》由会员分享,可在线阅读,更多相关《VB程序设计基础循环结构.pptx(145页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.4 循环结构 n计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。nVB中提供了两种类型的循环语句:1.计数循环语句-循环次数固定;2.条件型循环语句-循环次数不固定,由循环条件决定。第1页/共145页4.4 循环结构 nVB中提供的循环语句:1.循环次数固定:For循环语句2.循环次数不固定的循环(1)While循环语句(2)Do Loop循环语句:循环次数不固定 第2页/共145页4.4 循环结构4.4.1 For循环语句循环语句 4.4.2 While循环语句循环语句 4.4.3 DoLoop循环语句循环语句 4.4.4 循环嵌套循环嵌套 第3页/共145页认识循环结构1问题
2、:在窗体上显示10行*(每行10个*)直接用顺序结构实现:Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)用循环结构实现:Dim n as Integerfor n=1
3、 to 10 Form1.Print String(10,*)next n第4页/共145页前例循环结构分析:用循环结构实现:Dim n as Integer n是循环控制变量 for n=1 to 10 n的初值1,终值10,每循环1次增加1 Form1.Print String(10,*)循环体语句 next n 循环结束循环结束第5页/共145页 For循环语句 格式For 循环变量初值 To 终值 Step 步长循环体语句块Next 循环变量例:Dim n as Integerfor n=1 to 10 step 1 Print String(10,*)next n第6页/共145页
4、For循环语句使用注意事项 For 循环变量初值 To 终值 Step 步长循环体语句块Next 循环变量注意:1.循环变量必须为数值型。2.Step 步长缺省为1.例:Dim n as Integerfor n=1 to 10 Print String(10,*)next n第7页/共145页For循环语句的理解 Dim n as Integer n是循环控制变量for n=1 to 10 step 1 n的初值的初值1,终值,终值10 Print String(10,*)循环体语句next n 循环体结束u理解:对于变量n=1,2,3.到不超过10,分别执行:Print String(10
5、,*)循环体结束,产生下一个n(n=n+步长)u注意:(1)循环全部执行完后,循环变量的值为超过终值的值(如此处循环结束时n=11)(2)如果循环变量的初值一开始就超过终值,则一次也不执行循环体第8页/共145页说明:循环变量的作用有2个:之一:控制循环次数,如前例之二:不仅用于控制循环次数,而且在循环体中使用,即参与运算,这种情况更多见。第9页/共145页循环变量的作用之一:控制循环次数for n=11 to 20 step 1 Print String(10,*)next nfor n=1 to 20 step 2 Print String(10,*)next nfor n=10 to 1
6、 step -1 Print string(10,*)next n对n=10,9,8.到1,分别执行:.循环结束后n的值?循环次数的计计算:循环次数循环次数=int(20-1)/2+1)=10循环次数=int(20-11)/1+1)=10循环次数=int(1-10)/(-1)+1)=10第10页/共145页循环变量的作用之一:控制循环次数循环语句的3种情况:1.步长0:初值终值:最多见,循环变量从初值逐渐增加最后变化为终值2.步长终值循环变量从初值逐渐减少变化为终值3.如步长为0-死循环(永久循环):按crel+break终止死循环 第11页/共145页例:如下程序会输出什么?for n=1
7、to 10 step 1 Print n;String(10,*)next n循环变量的作用之二:在循环体中使用例:For n=1 To 10 Step 1 Print n;String(n,*)Next n仅用于控制循环次数不仅用于控制循环次数,还在循环体中使用第12页/共145页For循环举例问题:求:s=1+2+3+4+5+100 分析:用循环实现 1.求和结果存放在变量s中,s的初值应:s=0 2.循环控制变量用i表示,i从1,2,3,100,变化到1003.求和的过程就是让变量i从1开始,2,3.到100,要循环(反复)执行:s=s+i第13页/共145页问题:循环结束后,i的值是多
8、少?For循环举例问题:求:s=1+2+3+4+5+100Dim i%,s%i是循环控制变量,s结果变量s=0 初始值0,作为累加器(清零)for i=1 to 100 step 1 s=s+inext iForm.Print 1到100累加和=;s101第14页/共145页For循环举例问题:求:s=1+2+3+4+5+100Dim i%,s%i是循环控制变量,s结果变量s=0 初始值0,作为累加器(清零)for i=1 to 100 step 1 s=s+inext iForm.Print 1到100累加和=;s改成:for i=100 to 1 step-1 s=s+inext i第15
9、页/共145页For循环课堂练习1问题分析:对于变量 i=1,3,5,.到不超过100,分别执行:s=s+i next in问题:计算1100的奇数和 求:s=1+3+5+99第16页/共145页Dim i%,s%i是循环控制变量,s结果变量s=0 初始值,作为累加器for i=1 to 100 step 2 s=s+inext iPrint 1到100奇数和=;s结束后i的值?n问题:计算1100的奇数和 求:s=1+3+5+99For循环课堂练习1答案101第17页/共145页For循环课堂练习2n问题:计算1100之间的奇数的倒数的和 求:s=1/1+1/3+1/5+.+1/99问题分析
10、:对于变量 i=1,3,5,.到不超过100,分别执行:s=s+1/i next I特别注意:s是带小数的!第18页/共145页Dim i%,s!i是循环控制变量,s结果变量,单精度型s=0 初始值,作为累加器for i=1 to 100 step 2 s=s+1/inext iPrint 1到100奇数和=;sFor循环课堂练习2答案n问题:计算1100之间的奇数的倒数的和 求:s=1+1/3+1/5+.+1/99第19页/共145页For循环课堂练习3n问题:求:s=1-1/3+1/5-1/7+.+1/99n问题分析:n正负号交叉问题:定义一个用于处理符号的控制变量变量sign,初始值为+
11、1,再随着循环的进行,改为-1,再改为+1,再改为-1,改变的方法:sign=-signn对于变量 i=1,3,5,.到不超过100,分别执行:s=s+sign/I sign=-sign next In特别注意:s是带小数的!第20页/共145页Dim i%,s!i是循环控制变量,s结果变量,有小数,单精度Dim sign%存+1 或-1,是控制变量sign=1s=0 初始值,作为累加器for i=1 to 100 step 2 s=s+sign/i sign=-signnext iPrint s=;sFor循环课堂练习3答案n问题:求:s=1-1/3+1/5-1/7+.+1/99第21页/共
12、145页For循环课堂练习4n问题:编写一个程序 求15!n问题分析:1.m=1*2*.*152.注意15!超过1012,应该用单精度或双精度型3.参考:求:s=1+2+3+4+5+100Dim i%,s%i是循环控制变量,s结果变量s=0 初始值,作为累加器for i=1 to 100 step 1 s=s+inext iForm1.Print 1到100累加和=;s第22页/共145页For循环课堂练习4答案n问题:编写一个程序 求15!Dim i%,m#为什么用双精度?m=1 为什么=1?For i=1 To 15 Step 1 m=m*iNext iForm1.Print 15!=;m
13、第23页/共145页表 3.1 基本数据类型数据类型数据类型关键字关键字类型符类型符前缀前缀占字节数占字节数范范 围围字节型字节型Byte无无byt10255逻辑型逻辑型Boolean无无bln2True与与False整型整型Integer%int2-3276832767长整型长整型Long&lng4-21474836482147483647单精度型单精度型Single!sng4-3.402823E383.402823E38双精度型双精度型Double#dbl8-1.79769313486232D3081.79769313486232D308货币型货币型Currencycur8-9223372
14、03685477.5808922337203685477.5907日期型日期型Date无无dtm801,01,010012,31,9999 0:00:0023:59:59字符型字符型String$str与串长有关与串长有关065535个字符个字符对象型对象型Objiect无无obj4任何对象引用任何对象引用变体型变体型Variant无无vnt据分配确定据分配确定第24页/共145页参考程序:求参考程序:求15!Dim i%,m!m=1 为什么=1?For i=1 To 15 Step 1 m=m*iNext iForm1.Print 15!=;mFor循环课堂练习循环课堂练习5n问题:参考求
15、15!的程序,编写一个程序,要求能求任意数 n!第25页/共145页Dim i%,m#,n%n=inputbox(“输入输入n”)m=1For i=1 To n Step 1 m=m*iNext iMsgBox n&!=&mFor循环课堂练习循环课堂练习5答案答案n问题:参考求 15!的程序,编写一个程序,要求能求任意数 n!第26页/共145页For循环课堂练习循环课堂练习6n问题:求n至m之间自然数的累加参考求s=1+2+3+4+5+100的程序,做适当修改,使程序能对任意2个数n到m之间的自然数累加参考程序:求s=1+2+3+4+5+100Dim i%,s%i是循环控制变量,s结果变量s
16、=0 初始值0,作为累加器(清零)for i=1 to 100 step 1 s=s+inext iPrint 1到100累加和=;s第27页/共145页For循环课堂练习循环课堂练习6答案答案n问题:求n至m之间自然数的累加参考求s=1+2+3+4+5+100的程序,做适当修改,使程序能对任意2个数n到m之间的自然数累加Dim i%,sum%,n%,m%n=inputbox(“输入输入n”)m=inputbox(“输入输入m”)sum=0For i=n To m Step 1 sum=sum+iNext iMsgBox n&至至&m&累加累加=&sum 第28页/共145页注意存放累加与连乘
17、的变量初值是不同的!累加初值为0,连乘初值为1Dim i%,sum%,n%n=inputbox(“输入输入n”)sum=0For i=1 To n Step 1 sum=sum+iNext iMsgBox sum Dim i%,m#,n%n=inputbox(“输入输入n”)m=1For i=1 To n Step 1 m=m*iNext iMsgBox n&!=&m第29页/共145页 这样有什么问题?Dim i%,sum%,n%n=inputbox(“输入输入n”)For i=1 To n Step 1 sum=0 sum=sum+iNext iMsgBox sum Dim i%,m#,n
18、%n=inputbox(“输入输入n”)For i=1 To n Step 1 m=1 m=m*iNext iMsgBox n&!=&m错误1第30页/共145页 Dim i%,sum%,n%n=inputbox(“输入输入n”)sum=0For i=1 To n Step 1 sum=sum+i MsgBox sum Next iDim i%,m#,n%n=inputbox(“输入输入n”)m=1For i=1 To n Step 1 m=m*i MsgBox n&!=&mNext i这样有什么问题?错误2第31页/共145页 Dim i%,sum%sum=0For i=1 To 100 S
19、tep 1 sum=sum+i i=1 Next iMsgBox sum 这样有什么问题?错误3for循环变量的值会自动修改不要在for循环体中给循环变量赋值,第32页/共145页n编写程序,从键盘上任意输入10个数,输出这10个数的累加值Dim i%,sum%,a%sum=0For i=1 To 10 Step 1 a=inputbox(请输入第请输入第&i&个数个数:)sum=sum+aNext iMsgBox 合计合计=&sum 怎样输出平均值?For循环课堂练习循环课堂练习7第33页/共145页n编写程序,从键盘上任意输入10个数,输出这10个数的累加值,平均值For循环课堂练习循环课
20、堂练习8Dim i%,sum%,a%,aver!sum=0For i=1 To 10 Step 1 a=InputBox(请输入第&i&个数:)sum=sum+aNext iaver=sum/10MsgBox 合计=&sum&;平均=&aver第34页/共145页以上例子都是在一个例子的基础之上扩充功能或者小改功能得到的,都有类似之处以下讲解FOR循环的其它例子第35页/共145页For循环举例1例:编写程序,在窗体上显示ASCII码表中ASCII码的值为32至126的字符(即可见字符),显示如图示,每行显示5个。第36页/共145页For循环举例1n分析1:已经知道一个字符的ASCII码值,
21、求这个字符是什么字符,需要用函数:chr(N)chr(N)得到ASCII码为N的字符 例如:chr(32)=chr(48)=0 chr(65)=A chr(97)=a chr(13)=回车第37页/共145页n分析2:要在窗体上输出ASCII码值为32的字符,如图,可以用以下语句:Dim i%i=32Form1.Print Chr(i);=;i要在窗体上输出ASCII码值为33的字符,可以用以下语句:Dim i%i=33Form1.Print Chr(i);=;i第38页/共145页问题:如何输出ASCII码的值为32至126的字符?第39页/共145页For循环举例1n分析3:要在窗体上输出
22、ASCII码值为32到ASCII码值为126的字符,可以用一个固定次数的循环Dim i%For i=32 to 126 step 1 Form1.print chr(i);=;iNext i问题:只显示在一列上,达不到要求!第40页/共145页For循环举例n分析4:在一行显示多个输出项Dim i%For i=32 to 126 step 1 Form1.print chr(i);“=”;i,Next i问题:都显示在一行上,达不到要求!怎么才能每行显示5个?第41页/共145页For循环举例n分析5:增加一个变量a%,用于记录输出的个数,a的初值为0,每输出1个项,a增加1,当a=5时,输出
23、一个换行,换行后将a重新设置为0 n如何换行?Private Sub Form_Click()Dim i%,a%a=0For i=32 To 126 Step 1 Form1.Print Chr(i);=;i,a=a+1 If a=5 Then Form1.Print a=0 End IfNext iEnd SubForm1.print第42页/共145页For循环举例1:结果Private Sub Form_Click()Dim i%,a%a=0For i=32 To 126 Step 1 Form1.Print Chr(i);=;i,a=a+1 If a=5 Then Form1.Prin
24、t a=0 End IfNext iEnd Sub第43页/共145页For循环举例1分析6:输出也可以要求指定输出项之间的间隔,例如要求用6个空格分隔2个输出项 Form1.Print Spc(6);Private Sub Form_Click()Dim i%,a%a=0 清零For i=32 To 126 step 1 Form1.Print Chr(i);=;i;Spc(6);a=a+1 显示个数加1 If a=5 Then 够5个了 Form1.Print 换行 a=0 清零 End IfNext iEnd Sub第44页/共145页输出也可以要求指定输出项之间的间隔,例如要求用3个空
25、格分隔2个输出项 Form1.Print Spc(6);第45页/共145页For循环举例2例:参考前例,输出100至300之间可以被3整除或被5整除的数,两数间空4个空格,每8个数换行 第46页/共145页For循环举例2n分析:1.判断一个数i能被3整除或被5整除的条件表达式:i mod 3=0 OR i mod 5=02.输出100至300之间可以被3整除或被5整除的数,两数间空4个空格Dim i%,For i=100 To 300 step 1 if i mod 3=0 OR i mod 5=0 then Form1.Print i;Spc(4);end ifNext i问题:每8个数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 基础 循环 结构

限制150内