VB第3章第3节3循环结构课件_第1页
VB第3章第3节3循环结构课件_第2页
VB第3章第3节3循环结构课件_第3页
VB第3章第3节3循环结构课件_第4页
VB第3章第3节3循环结构课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

3.3结构化程序设计语句语句类别语句名称顺序语句赋值语句结束语句条件语句条件语句(If语句)选择语句(Select语句)转移语句Goto语句循环语句计数循环(For/Next语句)条件循环(Do……Loop语句)第3章VB.NET面向对象程序设计——第3节3循环结构语句循环控制本节目标1.掌握For循环(计数循环)和Do/Loop循环(条件循环)结构的应用。2.理解ExitFor、ExitDo在程序控制中的作用。3.掌握循环程序设计的基本方法。4.掌握逻辑运算符的使用。第3章VB.NET面向对象程序设计——第3节3循环结构语句循环控制

循环的本质:不断地重复某种动作。在许多问题中需要用到循环控制。例如,求若干个数之和:1×1+2×2+3×3=?1+2+3+4+……=?

对计算机程序而言,循环必须具备两个重要因素:1.在一定的条件下,重复执行一组指令。2.必然出现不满足条件的情况,使循环终止。第3章VB.NET面向对象程序设计——第3节3循环结构语句在VB语言中可用以下语句实现循环:1.用Goto和If构成循环2.For语句3.Do~Loop语句第3章VB.NET面向对象程序设计——第3节3循环结构语句3.3.3循环结构语句一、计数循环控制语句(ForNext语句)语句功能:按指定的次数重复执行某组语句。语句格式:For循环变量=初值To终值[Step步长值]语句块[ExitFor]

语句块Next[循环变量]流程图:第3章VB.NET面向对象程序设计——第3节3循环结构语句说明:(1)循环变量必须是数值型变量。

(2)初值、终值、步长值可以是表达式。它们的类型必须与循环变量的类型相同。

(3)步长值可以是正数(初值应当小于终值)或负数(初值应当大于终值)。缺省值为1。(4)ExitFor:退出循环,执行Next语句的后继语句。(5)For与Next中间的语句块称为循环体,可以是多个语句。例如:

ForI=1To10Step1TextBox1.Text=TextBox1.Text&I&""NextI该程序段执行10次循环,在文本框内输出结果为:12345678910第3章VB.NET面向对象程序设计——第3节3循环结构语句例:求1~100的累计和

Fori=1To100sum=sum+iNexti计算机执行For语句的过程:1)将初值赋予循环变量。2)判断循环变量的值是否小于等于循环终值(步长值为正),如果条件满足,则执行循环体内的语句,循环变量增加步长值;否则循环结束,执行Next语句的后继语句。第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—18】学生成绩统计。用For-Next语句实现例3—16要求的功能。smax=-1:smin=101

Fornum=1To30

ch="请输入第"&num&"个学生的成绩"

s=InputBox(ch)'输入学生成绩

sum=sum+s'学生成绩累加'保留最高分及对应学号

Ifs>smaxThensmax=s:nummax=num'保留最低分及对应学号

Ifs<sminThensmin=s:nummin=numNextnum第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—19】

输入一个正整数n,判断其是否为素数,若是素数,输出“是素数”;否则输出“不是素数”。

DimNAsInteger,IAsIntegerN=InputBox("请输入一个整数:","例题")ForI=2ToN-1IfNModI=0ThenMessageBox.Show(N&"不是素数”)GoTo10EndIfNextIMessageBox.Show(N&"是素数”)10:不是素数,输出以后转移。第3章VB.NET面向对象程序设计——第3节3循环结构语句在使用循环语句时,还应注意:在循环体内不能改变循环变量的初值、终值、步长值。例如:

a=2:b=6:c=2Fori=aTobStepca=3:b=10:c=1TextBox1.Text=TextBox1.Text&i&""Nexti程序执行结果为:

246

第3章VB.NET面向对象程序设计——第3节3循环结构语句循环语句嵌套:在一个循环结构的循环体内包含另一个或多个循环结构(也称为多重循环)。例如:Form=1To9

Forn=1To9

TextBox1.Text=TextBox1.Text&m*n&""NextnTextBox1.Text=TextBox1.Text&vbCrLfNextm第3章VB.NET面向对象程序设计——第3节3循环结构语句注意:(1)内外层循环不能交叉,例如:ForI=1To5ForJ=1To5::NextINextJ(2)嵌套循环变量名不可相同,例如:ForI=1To5ForI=1To5::NextINextI第3章VB.NET面向对象程序设计——第3节3循环结构语句DimIAsInteger,JAsIntegerForI=1To5TextBox1.Text=TextBox1.Text&Space(8-I)

ForJ=1To2*I-1TextBox1.Text=TextBox1.Text&"*"NextJTextBox1.Text=TextBox1.Text&vbCrLfNextI外层I循环控制行数;内层J循环控制列数使用Space函数输出空格以确定每行输出的起始位置。外层循环中的vbCrlf起换行的作用第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—21】在文本框内显示2到100之间的素数,要求每行输出5个素数。

DimIAsInteger,KAsInteger,NAsIntegerFork=2To100ForI=2Tok-1IfkModI=0ThenGoTo10EndIfNextIIfk<10ThenTextBox1.Text=TextBox1.Text&k&Space(3)ElseTextBox1.Text=TextBox1.Text&k&Space(2)EndIfN=N+1IfN=5ThenN=0:TextBox1.Text=TextBox1.Text&vbCrLf10:NextK

每行输出5个数字依次判断2~100之间的每一个数第3章VB.NET面向对象程序设计——第3节3循环结构语句请考虑:如何将【例3—9】改成由For-Next构成的循环结构(假设循环10次)。学习要点熟练使用For-Next语句进行程序设计。第3章VB.NET面向对象程序设计——第3节3循环结构语句(一)四种形式的条件循环控制语句DoWhile<条件><语句块>LoopDo<语句块>LoopWhile<条件>DoUntil<条件><语句块>LoopDo<语句块>LoopUntil<条件>先测型后测型第3章VB.NET面向对象程序设计——第3节3循环结构语句1.Do……LoopWhile语句语句功能:重复执行循环体内的语句,直到条件不成立(条件值为False)。语句格式:

Do

语句块

LoopWhile条件说明:(1)条件可以是关系表达式、逻辑表达式、数值表达式。数值表达式的值非0,则为True(条件满足);数值表达式的值为0条件值为False(条件不满足)。例如:第3章VB.NET面向对象程序设计——第3节3循环结构语句s=5DoPrintss=0LoopWhile

s进入循环后条件表达式S的值等于0,即条件值为False,因此循环结束。(2)Do……Loop中间的语句块称为循环体,可以包含多个语句。

第3章VB.NET面向对象程序设计——第3节3循环结构语句2.Do……LoopUntil语句语句功能:重复执行循环体内的语句,直到条件成立(条件值为True)。语句格式:

Do

语句块

LoopUntil条件说明:(1)语句中的条件与Do……LoopWhile语句的条件相同。(2)计算机执行Do……LoopUntil语句的过程:第3章VB.NET面向对象程序设计——第3节3循环结构语句1)首先执行Do和Loop之间的语句。

2)当执行到Loop语句时,进行条件判断。与Do……LoopWhile相反,若值是False(不满足条件),则继续执行Do和Loop之间的语句块(循环)。若值是True(满足条件),则循环结束,执行Do……LoopUntil语句的后继语句。

例:

DoPW=InputBox("输入密码")

LoopUntilPW="ABCD"注意,Do……LoopWhile语句与Do……LoopUntil语句对条件的逻辑设置相反。第3章VB.NET面向对象程序设计——第3节3循环结构语句4.DoUntil……Loop语句

语句功能:若条件不成立,则重复执行循环。语句格式:

DoUntil条件语句

Loop说明:(1)语句中的条件与前三种语句的条件相同。(2)计算机执行DoUntil……Loop语句的过程:首先判断DoUntil语句后的条件,若值是False,则执行Do和Loop之间的语句;若值是True,则循环结束,执行DoUntil……Loop语句的后继语句。第3章VB.NET面向对象程序设计——第3节3循环结构语句例:PW=InputBox("输入密码")

DoUntilPW="ABCD"PW=InputBox("输入密码")

Loop该程序段首先判断变量PW的值是否为“ABCD”,若不是“ABCD”则执行循环,直到输入“ABCD”后循环结束。注意:DoWhile……Loop语句与DoUntil……Loop语句对条件的逻辑设置是相反的第3章VB.NET面向对象程序设计——第3节3循环结构语句4种条件语句的比较:1)

DoPW=InputBox("输入密码")LoopWhilePW<>"ABCD"2)DoPW=InputBox("输入密码")LoopUntilPW="ABCD"第3章VB.NET面向对象程序设计——第3节3循环结构语句3)PW=InputBox("输入密码")DoWhilePW<>"ABCD"PW=InputBox("输入密码")Loop4)PW=InputBox("输入密码")DoUntilPW="ABCD"PW=InputBox("输入密码")Loop第3章VB.NET面向对象程序设计——第3节3循环结构语句(二)条件循环控制的几个问题(1)循环次数:取决于循环体的各语句如何去影响循环终止条件。条件表达式中的各个变量可称为循环控制变量。例如:

k=10

DoWhilek<>0

a=a+1

b=b+1

Loop

结果:“死循环”----重复不停地执行循环体。

修改方法:在Loop语句前可增加一个诸如

k=k-1的语句。第3章VB.NET面向对象程序设计——第3节3循环结构语句(2)四种不同形式的条件循环,根据其功能可分成两类:1)在循环之前先判断条件是否成立(先判后做)

DoWhile……Loop与DoUntil……Loop2)在循环之后判断条件是否成立(先做后判)

Do……LoopWhile与Do……LoopUntil两类循环的区别:“先做后判”时循环至少被执行一次,而“先判后做”时循环可能一次也不被执行。第3章VB.NET面向对象程序设计——第3节3循环结构语句(3)在DoWhile或DoUntil语句之前,一般应先确定循环控制变量的初值。例如:

s=InputBox("请输入:")

DoWhiles<9999

Sum=sum+s

s=InputBox("请输入:")

Loop(4)条件循环语句允许循环嵌套。(5)在条件循环中可以使用ExitDo语句,以退出循环。第3章VB.NET面向对象程序设计——第3节3循环结构语句Do…Loop语句DoWhile<条件><语句块>LoopDo<语句块>LoopWhile<条件>DoUntil<条件><语句块>LoopDo<语句块>LoopUntil<条件>

Until<条件>相当于Whilenot<条件>可用ExitDo中止循环先测型后测型第3章VB.NET面向对象程序设计——第3节3循环结构语句先测型与后测型的比较先测试条件至少执行一次Yes条件语句块Loop的下条语句No条件语句块Loop的下条语句YesNo第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—22】计算并显示满足下列不等式的调和级数的项数:1+1/2+1/3+……+1/n>E用循环结构求级数和的问题:求级数和的项数和精度都是有限的,否则可能会溢出或死循环,本例根据某项值的精度控制循环的结束。累加与连乘累加:在原有和的基础上一次次地加上一个数,如e=e+t;连乘:在原有积的基础上一次次地乘以一个数,如n=n*I。第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—23】从键盘输入两个正整数m和n,用辗转相除法计算并输出m和n的最大公约数。

算法简介:设m=na+r1(0≤r1<n),即m除以n的余数为r1,那么m和n的最大公约数与n和r1的最大公约数相同。若r1=0,则n就是m和n的最大公约数。若r1≠0,再对n和r1重复上面的过程,直到求出rn=0为止。算法演示:(VB_NEW)第3章VB.NET面向对象程序设计——第3节3循环结构语句DimaAsInteger,bAsInteger,rAsIntegera=InputBox("请输入第一个数据")b=InputBox("请输入第二个数据")Dor=aModba=b:b=rLoopWhiler<>0MessageBox.Show(a&“和”&b&“的最大_公约数是"&a)第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—24】编写一个译码程序,将一个由大写字母组成的英语句子译成数字代码。译码规则:以数字1代替字母A、数字2代替字母B、……、数字26代替字母Z,如遇空格则输出*号。英语句子以句号结束。

设letter为字符串变量,存放输入的一个大写字母;code为整型变量,存放某大写字母译码后对应的数字编码。

由编码规则可知,字母的数字编码都在1到26之间,因此译码的算法如下:

code=asc(letter)-asc("A")+1第3章VB.NET面向对象程序设计——第3节3循环结构语句【例3—25】从键盘输入任意正数m,编程计算第一个不小于m的Fibonacci数及其项号(即最小n和Fm,使Fn≥m)。已知Fibonacci数列定义如下:

F0=0,F1=1,F2=1,…,Fn+2=Fn+1+Fn(n>0)

主要程序:m=InputBox("请输入一个正整数:")

fst=0:snd=1:n=2DoUntilsnd>=mtrd=snd+fst:fst=snd:snd=trdn=n+1Loop3个变量前后迭代,产生一个新的数值存放在变量snd中第3章VB.NET面向对象程序设计——第3节3

温馨提示

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

最新文档

评论

0/150

提交评论