版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分支结构
程序示例
循环结构第四章VB的基本控制结构分支结构程序示例循环结构第四章VB的基本控制
程序控制结构:是语句排列和控制转移方向的描述,决定了程序执行的顺序。三种基本控制结构:顺序、选择、循环顺序结构:最基本、最简单的结构,按语句出现的先后顺序依次执行。4.1顺序结构程序控制结构:是语句排列和控制转移方向的描述,决定了程序执
先对条件测试,根据测试的结果选择执行不同的分支1.If条件语句2.SelectCase结构4.2选择结构先对条件测试,根据测试的结果选择执行不同的分支1If语句的三种形式:If条件语句1.If…Then
结构(单分支)2.If…Then…Else
结构(双分支)3.If…Then…ElseIf
结构(多分支)If语句的三种形式:If条件语句1.If…Then结构
例:Ifscore>=60ThenPrint"祝贺你考试通过!"
EndIfPrint“继续努力!”等价于:IfScore>=60ThenPrint“祝贺你考试通过!”
Print“继续努力!!!”
1.If…Then
结构(单分支)格式:(1)If条件Then(A组语句)
EndIf
……(2)If条件Then语句执行规则:若条件成立,执行A组语句;
条件不成立,跳过A组语句.条件A组语句TF
例:Ifscore>=60ThenPrintscorePrint"祝贺你考试通过!"EndIfPrint“继续努力!”例:Ifscore>=60Then1.If…T1.If…Then结构例1:输入两个数,分别放在x和y变量中,比较它们大小,然后将大数放在x中,小数放在y中。x<y……x%=Text1.textY%=Text2.textIfx<yThen
EndIfPrintx,y……
t=xx=yy=tFxyT①②③两个变量的值互换:If条件语句1.If…Then结构例1:输入两个数,分别放在x和y变量例:Ifscore>=60ThenPrint“祝贺你考试通过!”
ElsePrint“考试未通过.”EndIfPrint"继续努力!"2.If…Then…Else结构(双分支)格式:If
条件Then
A组语句
ElseB组语句
ENDIf
执行规则:条件成立,执行A组语句,
条件不成立,执行B组语句例2:计算分段函数:
Y=√x2+1(x≠0)x3+3x(x=0)条件A组语句TFB组语句If条件语句例:Ifscore>=60Then2.If…Th例:(思考)输入二级考试成绩,要求显示对应三级制的评定。评定条件为:
优:Mark≥90等级:通过:60≤Mark<90
未通过:<60成绩>=90?输入成绩开始输出“通过”T输出“优”T成绩>=60?F输出“未通过”FIf条件语句例:(思考)输入二级考试成绩,要求显示对应三级制的.3.If…Then…ElseIf结构(多分支)Mark=Text1.TextIfMark>=90ThenPrint"优"ElseIfMark>=60ThenPrint"通过"ElsePrint"未通过"EndIf若条件1与条件2换位,结果会怎样?格式:If
条件1Then
(A组语句)
ElseIf
条件2Then
(B组语句)
ElseIf
条件3Then
(C组语句)
……
Else
(n组语句)
EndIfIf条件语句.3.If…Then…ElseIf结构(多分支)Mark格式:If条件1ThenA组语句
ElseIf条件2ThenB组语句
ElseIf条件3ThenC组语句
……Elsen组语句
EndIf3.If…Then…ElseIf结构注意:多分支语句中,有多个分支同时满足,只执行第一
个与之匹配的语句块。注意ElseIf
的写法If条件语句格式:If条件1Then3.If…Then…Else【例4.3】用键盘输入一字符,判断该字符是小写字母、大写字母、数字字符还是其他字符,并作相应的显示。3.If…Then…ElseIf
结构If条件语句【例4.3】用键盘输入一字符,判断该字符是小写字母、大写字4.If语句的嵌套
If语句的嵌套是指if或else后面的语句块中又包含If语句。
If条件语句4.If语句的嵌套
If语句的嵌套是指if或else后面使用嵌套语句时应注意以下问题:(1)如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚便于阅读和查错。(2)每一个双分支结构都必须以If开始,以EndIf结束。使用嵌套语句时应注意以下问题:(3)内层嵌套的结构中除了满足该层规定的条件外,还必须首先满足外层结构中相应位置的条件。(4)VB中对块嵌套的层数没有限制,在嵌套的结构中仍然可以继续嵌套其他的结构.(5)利用双分支If语句的嵌套可以解决“多分支”选择的问题。(3)内层嵌套的结构中除了满足该层规定的条件外,SelectCase
测试表达式
Case测试项1A组语句
Case测试项2B组语句
……
CaseElsen组语句EndSelect说明:测试表达式可以是数值型或字符型测试项的取值必须与测试表达式的值类型相同,不能包含逻辑运算符常用形式为:具体取值,用逗号隔开如:1,5,9连续的范围:界1TO界2如:12To20满足某个条件:Is运算符如:Is>10三种形式可以组合使用SelectCase语句SelectCase结构(情况选择语句)SelectCase测试表达式说明:SelectCas例:输入二级考试成绩,要求显示对应三级制的评定。
Mark=Val(Text1.Text)SelectcaseMarkcaseis>=90Print"优"case90to60Print“通过"CaseElsePrint“未通过"Endselect例:输入二级考试成绩,要求显示对应三级制的评定。对于多分支选择结构,用SelectCase
语句比用If…Then…ElseIf语句更为直观,程序可读性强。两者的区别在于:SelectCase
语句只对单一表达式求值,并根据求值结果执行不同的语句块,而If…Then…ElseIf语句可以对多个不同的表达式求值,所以,当对多个条件进行判断时,只能用If…Then…ElseIf语句。对于多分支选择结构,用SelectCase语句比用If…4.3循环结构循环:是在指定的条件下多次重复执行一组语句1.For...Next2.Do...Loop3.循环嵌套4.其他辅助控制语句4.3循环结构循环:是在指定的条件下多次重复执行一组语句
VB提供了三种不同风格的循环结构,分别是: 计数循环(For—Next循环) 当循环(While循环)
Do循环(Do—Loop循环)其中计数循环常用于已知循环次数的循环,而当循环和Do循环适合于循环次数未知,只知道循环结束条件的循环。VB提供了三种不同风格的循环结构,分别是:For循环变量=初值
TO
终值
[Step
步长]
语句块
ExitFor
语句块
Next循环变量For循环格式:For循环---计数型循环步长省略,默认为1循环体For循环变量=初值TO终值[Step步长(1)系统将初值赋给循环变量,并自动记下终值和步长。(2)判断循环变量是否超过终值:未超过终值,执行一次循环体;否则,结束循环(3)执行Next语句,将循环变量加上一个步长。(4)转到(2),继续执行。(5)结束循环,执行Next后面的语句。循环变量=初值循环变量是否到达终值循环体循环变量=循环变量+步长TrueFalse(1)系统将初值赋给循环变量,并自动记下终值和步长。循环变量程序代码:
DimI%,s%ForI=1To10step1
NextIPrintI,s例1:求1+2+3+4+…+10之和.分析:重复过程(循环体):s=s+I初值、终值和增量:1、10、1
初值与终值换位可以吗?循环体的执行次数是多少?
输出的I、S的值是多少?ForI=1To10执行多少次?s=s+IForI=10To1Step-1For循环For循环变量=初值
TO终值
[Step步长]
语句块
ExitFor
语句块
Next循环变量循环体程序代码:分析:初值与终值换位循环体的执行次数是多少
DimIAsInteger,sAsIntegerForI=1To10s=s+INextIPrintI,s
例2:
求10!分析:重复过程:*初值、终值与增量不变例1:求1+2+3+4+…+10之和.分析:重复过程(循环体):
+初值、终值和增量:1、10、1DimIAsInteger,sAsIntegerForI=1To10s=s*INextIPrintI,ss=1ForI=1To10ForI=1To10
s=1For循环DimIAsInteger,sAsIntege功能说明:(1)在执行过程第二步中,所说的“超过”包含两种情况步长为正数时,循环变量大于终值为“超过”。步长为负数时,循环变量小于终值为“超过”。(2)终值和初值的取值有以下情况:步长为正数时,终值应该大于初值,否则循环体不会被执行。步长为负数时,终值应该小于初值,否则循环体不会被执行。
当循环变量等于终值时,不管步长是正数是负数,均执行一次循环体。功能说明:(3)循环次数由初值、终值和步长确定,计算公式为:循环次数=Int((终值-初值)/步长)+1(4)For语句和Next语句必须成对出现,不能单独使用。(5)循环变量在循环体内可以被引用参与运算。(6)
ExitFor表示当遇到该语句时,退出循环体,继续执行Next语句下面的代码;(7)当循环变量为整型,而循环参数为带小数点的实数时系统将按照CInt函数或CLng函数的方式,将其转换为与循环变量相同的整型数。PrivateSubCommand1_Click()DimiAsIntegerFori=7To8.6Step2.5PrintiNextiEndSub(3)循环次数由初值、终值和步长确定,计算公式为:Pri例:分析下列程序段的输出结果:
DimIAsInteger,JAsIntegerJ=2:m=6ForI=0TomStepJI=I+1J=J+1m=m+1NextIprintI,J,mFor循环【例4.6】输入20个整数,分别计算并输出正数和负数的平均值。例:分析下列程序段的输出结果:For循环【例4.6】输入21.DoWhile<条件>
循环体
Loop2.D0
循环体
LoopWhile<条件>3.DoUntil<条件>
循环体
Loop4.Do
循环体
LoopUntil<条件>Do…Loop循环---条件型循环1.DoWhile<条件>2.D03.DoUn1.While循环⑴DoWhile<循环条件>
循环体
[ExitDo]Loop执行过程:(先判断,后执行)先判断循环条件,若为真:执行循环体,再判断循环条件否则,跳过循环体,执行Loop之后语句循环条件语句块TF语句块FExitDoTDo…Loop循环1.While循环⑴DoWhile<循环条件>执⑴
DoWhile
<循环条件>
循环体
[ExitDo]
Loop
DimIAsInteger,sAsInteger
ForI=1To10s=s+I
NextIPrintI,s例1:求1+2+3+4+…+10的和.DimIAsInteger,sAsIntegerI=1DoWhileLoopPrintI,ss=s+II<=10I=I+1I=11(1)循环体执行了几次?(2)没有I=1会怎样?(3)将Print语句移到Loop的前面结果怎样?(4)I先赋值为11,结果如何?1.While循环Do…Loop循环⑴DoWhile<循环条件>例1:求1+2+3+4⑵
D0
循环体
[ExitDo]
LoopWhile<条件>执行过程:(先执行,后判断)先执行循环体,再判断循环条件,若为真,继续执行循环体;否则,结束循环,执行Loop之后语句循环条件语句块TF语句块FExitDoT1.While循环Do…Loop循环⑵D0执行过程:(先执行,后判断)循环条件语句块TF语⑵D0
循环体
[ExitDo]LoopWhile<条件>例4:修改例3DimIAsInteger
,sAsIntegerI=1DoWhileI<=10s=s+II=I+1LoopPrintI,sDimIAsInteger
,sAsIntegerI=1Dos=s+II=I+1LoopWhileI<=10PrintI,s
(1)循环体执行几次?(2)将I先赋值为11,执行结果如何?
1.While循环Do…Loop循环⑵D0例4:修改例3DimIAsInteger⑴DoWhile<条件>
循环体
[ExitDo]
Loop⑵
D0
循环体
[ExitDo]
LoopWhile
<条件>区别:(1)执行顺序不同
形式一:先判断,后执行循环体;
形式二:先执行循环体,后判断
(2)执行次数不同(特殊情况下)形式一:条件不满足,循环体可能一次也不执行形式二:不论条件如何,至少执行一次1.While循环(当型循环)Do…Loop循环⑴DoWhile<条件>⑵D0区别:(1)执行执行过程:(先判断,后执行)先判断循环条件:条件为假:执行循环体,
然后再判断条件.条件为真:跳过循环体,
执行Loop之后语句⑶DoUntil<条件>循环体
[ExitDo]
Loop2.Until循环(直到型循环)循环条件语句块FT语句块FExitDoTDo…Loop循环执行过程:(先判断,后执行)⑶DoUntil<条件>2⑶DoUntil<条件>循环体
[ExitDo]
Loop例5:修改上例DimIasinteger,sAsIntegerI=1DoWhileI<=10s=s+II=I+1LoopPrintI,sDimIasinterger,sAsIntegerI=1DoUntils=s+II=I+1LoopPrintI,s⑴条件应该如何写出?⑵显示的I、S值与上例一样吗?⑷Do
循环体
LoopUntil<条件>I>10Do…Loop循环2.Until循环⑶DoUntil<条件>例5:修改上例DimIas几种形式比较:
DoWhile<条件>
循环体
Loop(While<条件>)
DoUntil<条件>循环体
Loop(Until<条件>)区别:While条件为真时执行循环体,否则退出循环
Until条件为假时执行循环体,否则退出循环关系:While和Until可以相互转换,但循环条件取反Do…Loop循环几种形式比较:DoWhile<条件>Do1.GoTo语句2.Exit语句
满足循环条件的情况下,提前跳出循环体,结束循环。
两种形式:ExitFor、ExitDo
作用:无条件的转移到标号或行号指定的语句语法:GoTo{标号|行号}100IfI<=100Thens=s+II=I+2GoTo100EndIf其他辅助控制语句1.GoTo语句满足循环条件的情况下,提前跳出循环体,结DimIAsIntegerIfImod17=0thenprintI
endIfForI=100to200
NextIExitfor分析:重复工作:判断每个数除17的余数是否为0
初值、终值和增量:练习:求出100~200之间的第一个能被17整除的整数。其他辅助控制语句DimIAsIntegerIfImod17循环的嵌套:在一个循环体内又包含了一个完整的循环结构4.4循环嵌套ForI=1To9ForJ=1ToIs=I&"×"&J&"="&I*JPicture1.PrintTab((J-1)*8+1);s;NextJPicture1.PrintNextI注意:内、外循环变量不能同名外循环必须完全包含内循环,不能出现交叉在循环体中遇到ExitFor(Do)时,则只能跳出当前一层循环外层循环执行一次,内层循环要从头到尾执行一遍
循环的嵌套:在一个循环体内又包含了一个完整的循环结构4.4【例4.9】编写程序,找出100以内所有满足a2+b2=c2且a≤b的自然数组合。解题的基本思想是:一一列举各种可能的情况,并判断哪种情况是符合要求的解,这种算法称为穷举法(又称“枚举法”),通常采用循环结构来实现。本程序使用了三重循环,循环变量在1~100之间变化,内循环体被执行了100*100*100次。【例4.9】编写程序,找出100以内所有满足a2+b2=c2累加和、连乘积求素数最大公约数、最小公倍数穷举法4.5程序示例要求掌握的几个算法:累加和、连乘积4.5程序示例要求掌握的几个算法:1.累加、连乘例1:编写一个大奖赛统计选手得分的程序。要求单击“得分显示”按钮,则可以利用随机函数产生10个80~100分之间的随机整数,输出在窗体上,并将计算选手的最后得分也在窗体上显示。分析:由随机函数生成80~100之间的10个数据连续求和求平均值1.累加、连乘例1:编写一个大奖赛统计选手得分的程序。分析:2.求素数素数(质数):一个大于等于2的整数,并且只能被1和自身整除,而不能被其他整数整除的数。N是否为素数的判断算法:用穷举法用2至n-1逐个去除整数n.
若余数不为0,用下一个整数去除,直到n-1为止否则进行标记,或退出循环输出结果为了压缩循环次数,可将判断范围从2--n-1改为2--int(sqr(N))2.求素数素数(质数):一个大于等于2的整数,并且只能被1和【例4.10】编写程序,找出10000以内的所有素数并作相应显示。本例题可以用双重循环来实现,外循环用于对2~10000之间的数逐个进行判断,若是素数则将其添加到列表框中并作相应的计数,内循环用于判断每个数是否为素数。【例4.10】编写程序,找出10000以内的所有素数并作相应3.求最大公约数的算法S1.输入两个自然数M、N;S2.求M除以N的余数R;S3.使M=N,即用N代换M;S4.使N=R,即用R代换N;S5.若R≠0,则重复执行S2、S3、S4(循环),否则转S6;S6.输出M,M即为M和N的最大公约数。3.求最大公约数的算法S1.输入两个自然数M、N;PrivateSubForm_Click()m=Val(Text1)n=Val(Text2)Ifn<=0Orm<=0ThenText3="数据出错"EndEndIfIfm<nThent=m:m=n:n=t'使得m>n
Do'用do…loopwhile结构实现求最大公约数
R=mModnm=nn=RLoopwhileR<>0Text3.text=Cstr(m)EndSubPrivateSubForm_Click()求二个正整数m和n的最小公倍数
求得最大公约数以后,将原两数相乘并除以最大公约数,就得到了最小公倍数。求二个正整数m和n的最小公倍数求得最大公约数以后,将4. 穷举法穷举法:就是将可能出现的各种情况一一测试,判断是否满足条件Forx=0To100Fory=0To100Forz=0To100Ifx+y+z=100And_3*x+2*y+0.5*z=100ThenPrintx,y,zEndIfNextzNextyNextx例:百钱买百鸡假设:小鸡5角/只,公鸡2元/只,母鸡3元/只,现有100元钱要买100只鸡,编程列出所有可能的购鸡方案分析:设母鸡、公鸡、小鸡分别买X、Y、Z只
X+Y+Z=1003*X+2*Y+0.5*Z=100
Forx=0To33Fory=0To50If3*x+2*y+0.5*(100-x-y)_=100ThenPrintx,y,zEndIfNextyNextx4. 穷举法穷举法:就是将可能出现的各种情况一一测试,判断是【例4.13】随机生成30个三位正整数,将能被3整除、能被7整除的数找出并显示。生成m-n之间的随机整数可使用以下公式:Int(Rnd*(n-m+1))+m,本例中m=100,n=999【例4.13】随机生成30个三位正整数,将能被3整除、能被
分支结构
程序示例
循环结构第四章VB的基本控制结构分支结构程序示例循环结构第四章VB的基本控制
程序控制结构:是语句排列和控制转移方向的描述,决定了程序执行的顺序。三种基本控制结构:顺序、选择、循环顺序结构:最基本、最简单的结构,按语句出现的先后顺序依次执行。4.1顺序结构程序控制结构:是语句排列和控制转移方向的描述,决定了程序执
先对条件测试,根据测试的结果选择执行不同的分支1.If条件语句2.SelectCase结构4.2选择结构先对条件测试,根据测试的结果选择执行不同的分支1If语句的三种形式:If条件语句1.If…Then
结构(单分支)2.If…Then…Else
结构(双分支)3.If…Then…ElseIf
结构(多分支)If语句的三种形式:If条件语句1.If…Then结构
例:Ifscore>=60ThenPrint"祝贺你考试通过!"
EndIfPrint“继续努力!”等价于:IfScore>=60ThenPrint“祝贺你考试通过!”
Print“继续努力!!!”
1.If…Then
结构(单分支)格式:(1)If条件Then(A组语句)
EndIf
……(2)If条件Then语句执行规则:若条件成立,执行A组语句;
条件不成立,跳过A组语句.条件A组语句TF
例:Ifscore>=60ThenPrintscorePrint"祝贺你考试通过!"EndIfPrint“继续努力!”例:Ifscore>=60Then1.If…T1.If…Then结构例1:输入两个数,分别放在x和y变量中,比较它们大小,然后将大数放在x中,小数放在y中。x<y……x%=Text1.textY%=Text2.textIfx<yThen
EndIfPrintx,y……
t=xx=yy=tFxyT①②③两个变量的值互换:If条件语句1.If…Then结构例1:输入两个数,分别放在x和y变量例:Ifscore>=60ThenPrint“祝贺你考试通过!”
ElsePrint“考试未通过.”EndIfPrint"继续努力!"2.If…Then…Else结构(双分支)格式:If
条件Then
A组语句
ElseB组语句
ENDIf
执行规则:条件成立,执行A组语句,
条件不成立,执行B组语句例2:计算分段函数:
Y=√x2+1(x≠0)x3+3x(x=0)条件A组语句TFB组语句If条件语句例:Ifscore>=60Then2.If…Th例:(思考)输入二级考试成绩,要求显示对应三级制的评定。评定条件为:
优:Mark≥90等级:通过:60≤Mark<90
未通过:<60成绩>=90?输入成绩开始输出“通过”T输出“优”T成绩>=60?F输出“未通过”FIf条件语句例:(思考)输入二级考试成绩,要求显示对应三级制的.3.If…Then…ElseIf结构(多分支)Mark=Text1.TextIfMark>=90ThenPrint"优"ElseIfMark>=60ThenPrint"通过"ElsePrint"未通过"EndIf若条件1与条件2换位,结果会怎样?格式:If
条件1Then
(A组语句)
ElseIf
条件2Then
(B组语句)
ElseIf
条件3Then
(C组语句)
……
Else
(n组语句)
EndIfIf条件语句.3.If…Then…ElseIf结构(多分支)Mark格式:If条件1ThenA组语句
ElseIf条件2ThenB组语句
ElseIf条件3ThenC组语句
……Elsen组语句
EndIf3.If…Then…ElseIf结构注意:多分支语句中,有多个分支同时满足,只执行第一
个与之匹配的语句块。注意ElseIf
的写法If条件语句格式:If条件1Then3.If…Then…Else【例4.3】用键盘输入一字符,判断该字符是小写字母、大写字母、数字字符还是其他字符,并作相应的显示。3.If…Then…ElseIf
结构If条件语句【例4.3】用键盘输入一字符,判断该字符是小写字母、大写字4.If语句的嵌套
If语句的嵌套是指if或else后面的语句块中又包含If语句。
If条件语句4.If语句的嵌套
If语句的嵌套是指if或else后面使用嵌套语句时应注意以下问题:(1)如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚便于阅读和查错。(2)每一个双分支结构都必须以If开始,以EndIf结束。使用嵌套语句时应注意以下问题:(3)内层嵌套的结构中除了满足该层规定的条件外,还必须首先满足外层结构中相应位置的条件。(4)VB中对块嵌套的层数没有限制,在嵌套的结构中仍然可以继续嵌套其他的结构.(5)利用双分支If语句的嵌套可以解决“多分支”选择的问题。(3)内层嵌套的结构中除了满足该层规定的条件外,SelectCase
测试表达式
Case测试项1A组语句
Case测试项2B组语句
……
CaseElsen组语句EndSelect说明:测试表达式可以是数值型或字符型测试项的取值必须与测试表达式的值类型相同,不能包含逻辑运算符常用形式为:具体取值,用逗号隔开如:1,5,9连续的范围:界1TO界2如:12To20满足某个条件:Is运算符如:Is>10三种形式可以组合使用SelectCase语句SelectCase结构(情况选择语句)SelectCase测试表达式说明:SelectCas例:输入二级考试成绩,要求显示对应三级制的评定。
Mark=Val(Text1.Text)SelectcaseMarkcaseis>=90Print"优"case90to60Print“通过"CaseElsePrint“未通过"Endselect例:输入二级考试成绩,要求显示对应三级制的评定。对于多分支选择结构,用SelectCase
语句比用If…Then…ElseIf语句更为直观,程序可读性强。两者的区别在于:SelectCase
语句只对单一表达式求值,并根据求值结果执行不同的语句块,而If…Then…ElseIf语句可以对多个不同的表达式求值,所以,当对多个条件进行判断时,只能用If…Then…ElseIf语句。对于多分支选择结构,用SelectCase语句比用If…4.3循环结构循环:是在指定的条件下多次重复执行一组语句1.For...Next2.Do...Loop3.循环嵌套4.其他辅助控制语句4.3循环结构循环:是在指定的条件下多次重复执行一组语句
VB提供了三种不同风格的循环结构,分别是: 计数循环(For—Next循环) 当循环(While循环)
Do循环(Do—Loop循环)其中计数循环常用于已知循环次数的循环,而当循环和Do循环适合于循环次数未知,只知道循环结束条件的循环。VB提供了三种不同风格的循环结构,分别是:For循环变量=初值
TO
终值
[Step
步长]
语句块
ExitFor
语句块
Next循环变量For循环格式:For循环---计数型循环步长省略,默认为1循环体For循环变量=初值TO终值[Step步长(1)系统将初值赋给循环变量,并自动记下终值和步长。(2)判断循环变量是否超过终值:未超过终值,执行一次循环体;否则,结束循环(3)执行Next语句,将循环变量加上一个步长。(4)转到(2),继续执行。(5)结束循环,执行Next后面的语句。循环变量=初值循环变量是否到达终值循环体循环变量=循环变量+步长TrueFalse(1)系统将初值赋给循环变量,并自动记下终值和步长。循环变量程序代码:
DimI%,s%ForI=1To10step1
NextIPrintI,s例1:求1+2+3+4+…+10之和.分析:重复过程(循环体):s=s+I初值、终值和增量:1、10、1
初值与终值换位可以吗?循环体的执行次数是多少?
输出的I、S的值是多少?ForI=1To10执行多少次?s=s+IForI=10To1Step-1For循环For循环变量=初值
TO终值
[Step步长]
语句块
ExitFor
语句块
Next循环变量循环体程序代码:分析:初值与终值换位循环体的执行次数是多少
DimIAsInteger,sAsIntegerForI=1To10s=s+INextIPrintI,s
例2:
求10!分析:重复过程:*初值、终值与增量不变例1:求1+2+3+4+…+10之和.分析:重复过程(循环体):
+初值、终值和增量:1、10、1DimIAsInteger,sAsIntegerForI=1To10s=s*INextIPrintI,ss=1ForI=1To10ForI=1To10
s=1For循环DimIAsInteger,sAsIntege功能说明:(1)在执行过程第二步中,所说的“超过”包含两种情况步长为正数时,循环变量大于终值为“超过”。步长为负数时,循环变量小于终值为“超过”。(2)终值和初值的取值有以下情况:步长为正数时,终值应该大于初值,否则循环体不会被执行。步长为负数时,终值应该小于初值,否则循环体不会被执行。
当循环变量等于终值时,不管步长是正数是负数,均执行一次循环体。功能说明:(3)循环次数由初值、终值和步长确定,计算公式为:循环次数=Int((终值-初值)/步长)+1(4)For语句和Next语句必须成对出现,不能单独使用。(5)循环变量在循环体内可以被引用参与运算。(6)
ExitFor表示当遇到该语句时,退出循环体,继续执行Next语句下面的代码;(7)当循环变量为整型,而循环参数为带小数点的实数时系统将按照CInt函数或CLng函数的方式,将其转换为与循环变量相同的整型数。PrivateSubCommand1_Click()DimiAsIntegerFori=7To8.6Step2.5PrintiNextiEndSub(3)循环次数由初值、终值和步长确定,计算公式为:Pri例:分析下列程序段的输出结果:
DimIAsInteger,JAsIntegerJ=2:m=6ForI=0TomStepJI=I+1J=J+1m=m+1NextIprintI,J,mFor循环【例4.6】输入20个整数,分别计算并输出正数和负数的平均值。例:分析下列程序段的输出结果:For循环【例4.6】输入21.DoWhile<条件>
循环体
Loop2.D0
循环体
LoopWhile<条件>3.DoUntil<条件>
循环体
Loop4.Do
循环体
LoopUntil<条件>Do…Loop循环---条件型循环1.DoWhile<条件>2.D03.DoUn1.While循环⑴DoWhile<循环条件>
循环体
[ExitDo]Loop执行过程:(先判断,后执行)先判断循环条件,若为真:执行循环体,再判断循环条件否则,跳过循环体,执行Loop之后语句循环条件语句块TF语句块FExitDoTDo…Loop循环1.While循环⑴DoWhile<循环条件>执⑴
DoWhile
<循环条件>
循环体
[ExitDo]
Loop
DimIAsInteger,sAsInteger
ForI=1To10s=s+I
NextIPrintI,s例1:求1+2+3+4+…+10的和.DimIAsInteger,sAsIntegerI=1DoWhileLoopPrintI,ss=s+II<=10I=I+1I=11(1)循环体执行了几次?(2)没有I=1会怎样?(3)将Print语句移到Loop的前面结果怎样?(4)I先赋值为11,结果如何?1.While循环Do…Loop循环⑴DoWhile<循环条件>例1:求1+2+3+4⑵
D0
循环体
[ExitDo]
LoopWhile<条件>执行过程:(先执行,后判断)先执行循环体,再判断循环条件,若为真,继续执行循环体;否则,结束循环,执行Loop之后语句循环条件语句块TF语句块FExitDoT1.While循环Do…Loop循环⑵D0执行过程:(先执行,后判断)循环条件语句块TF语⑵D0
循环体
[ExitDo]LoopWhile<条件>例4:修改例3DimIAsInteger
,sAsIntegerI=1DoWhileI<=10s=s+II=I+1LoopPrintI,sDimIAsInteger
,sAsIntegerI=1Dos=s+II=I+1LoopWhileI<=10PrintI,s
(1)循环体执行几次?(2)将I先赋值为11,执行结果如何?
1.While循环Do…Loop循环⑵D0例4:修改例3DimIAsInteger⑴DoWhile<条件>
循环体
[ExitDo]
Loop⑵
D0
循环体
[ExitDo]
LoopWhile
<条件>区别:(1)执行顺序不同
形式一:先判断,后执行循环体;
形式二:先执行循环体,后判断
(2)执行次数不同(特殊情况下)形式一:条件不满足,循环体可能一次也不执行形式二:不论条件如何,至少执行一次1.While循环(当型循环)Do…Loop循环⑴DoWhile<条件>⑵D0区别:(1)执行执行过程:(先判断,后执行)先判断循环条件:条件为假:执行循环体,
然后再判断条件.条件为真:跳过循环体,
执行Loop之后语句⑶DoUntil<条件>循环体
[ExitDo]
Loop2.Until循环(直到型循环)循环条件语句块FT语句块FExitDoTDo…Loop循环执行过程:(先判断,后执行)⑶DoUntil<条件>2⑶DoUntil<条件>循环体
[ExitDo]
Loop例5:修改上例DimIasinteger,sAsIntegerI=1DoWhileI<=10s=s+II=I+1LoopPrintI,sDimIasinterger,sAsIntegerI=1DoUntils=s+II=I+1LoopPrintI,s⑴条件应该如何写出?⑵显示的I、S值与上例一样吗?⑷Do
循环体
LoopUntil<条件>I>10Do…Loop循环2.Until循环⑶DoUntil<条件>例5:修改上例DimIas几种形式比较:
DoWhile<条件>
循环体
Loop(While<条件>)
DoUntil<条件>循环体
Loop(Until<条件>)区别:While条件为真时执行循环体,否则退出循环
Until条件为假时执行循环体,否则退出循环关系:While和Until可以相互转换,但循环条件取反Do…Loop循环几种形式比较:DoWhile<条件>Do1.GoTo语句2.Exit语句
满足循环条件的情况下,提前跳出循环体,结束循环。
两种形式:ExitFor、ExitDo
作用:无条件的转移到标号或行号指定的语句语法:GoTo{标号|行号}100IfI<=100Thens=s+II=I+2GoTo100EndIf其他辅助控制语句1.GoTo语句满足循环条件的情况下,提前跳出循环体,结DimIAsIntegerIfImod17=0thenprintI
endIfForI=100to200
NextIExitfor分析:重复工作:判断每个数除17的余数是否为0
初值、终值和增量:练习:求出100~200之间的第一个能被17整除的整数。其他辅助控制语句DimIAsIntegerIfImod17循环的嵌套:在一个循环体内又包含了一个完整的循环结构4.4循环嵌套ForI=1To9ForJ=1ToIs=I&"×"&J&"="&I*JPicture1.PrintTab((J-1)*8+1);s;NextJPicture1.PrintNextI注意:内、外循环变量不能同名外循环必须完全包含内循环,不能出现交叉在循环体中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初中化学九年级下册第一单元培训试卷
- 2026区块链在数字货币发行的应用需求与监管机制创新研究
- 2026中国图书出版行业电商渠道竞争分析及品牌培育投资建议
- 2026叶黄素酯在眼健康领域的产品开发与市场教育报告
- 2026全球汽车零部件供应链优化升级策略研究产业发展趋势深度报告
- 市民中心隐患问题整改项目防排烟风管及防火门改造招标文化
- 2026中国智能驾驶系统行业市场竞争分析规划技术发展报告
- 2026中国无人机物流配送网络布局及政策支持需求报告
- 2026中国物流行业跨境合作机遇及一带一路影响与投资前景研究报告
- 2026石油化工领域供需平衡分析及行业投资布局规划报告
- 2026秋新北师大版三年级上册小学数学教学计划含进度表
- 2026湖北恩施州利川市选调市外教师30人备考题库及参考答案详解AB卷
- 工业企业生态环境保护管理制度汇编
- 广东省佛山市2025-2026学年高一下学期期末考试数学试卷
- 湖南省衡阳市四校2025-2026学年下学期期末检测 七年级地理试卷(含答案)
- 2026年实验室设计标准规范
- 12.《公共财政概论》第十二章 财政体制 改
- 格力集团基层员工形薪酬满意度对离职意愿的影响研究
- DB35∕T 1894-2020 数字福建电子政务项目审查规范
- 二手车销售公司运营方案范文
- 老年吸入性肺炎
评论
0/150
提交评论