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

下载本文档

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

文档简介

第3章 VB.NET面向对象程序设计第3节3 循环结构语句,3.3 结构化程序设计语句,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,循环控制,本节目标,1. 掌握For循环(计数循环)和Do/Loop循环(条件循环)结构的应用。,2. 理解 ExitFor、ExitDo 在程序控制中的作用。,3. 掌握循环程序设计的基本方法。,4. 掌握逻辑运算符的使用。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,循环控制, 循环的本质:不断地重复某种动作。, 在许多问题中需要用到循环控制。例如,求若干个数之和: 11+ 22+ 33=? 1+2+3+4+=?, 对计算机程序而言,循环必须具备两个重要因素:,1. 在一定的条件下,重复执行一组指令。,2. 必然出现不满足条件的情况,使循环终止。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,例:求1100的和。 根据已有的知识,可以用“1+2+100”来求解,但显然很繁琐。现在换个思路来考虑: 1、首先设置一个累加器sum,其初值为0; 2、利用 sum = sum+n 来计算(n依次取1、2、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次 sum = sum+n 后,n 增加1 n=n+1 ; (3)当n增到101时,停止计算。此时,sum的值就是1100的累计和。 根据已有的知识,单独实现每一步都不难。由于需要经常使用这种重复计算结构(循环结构),VB语言提供了2类循环语句来实现,以简化、并规范循环结构程序设计。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,在VB语言中可用以下语句实现循环:,1.用Goto 和If 构成循环,2. For 语句,3. Do Loop 语句,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,3.3.3 循环结构语句 一、计数循环控制语句(For Next语句) 语句功能:按指定的次数重复执行某组语句。 语句格式: For 循环变量 = 初值 To 终值 Step 步长值 语句块 Exit For 语句块 Next 循环变量 流程图:,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,说明: (1)循环变量必须是数值型变量。 (2)初值、终值、步长值可以是表达式。它们的类型必须与循环变量的类型相同。 (3)步长值可以是正数(初值应当小于终值)或负数(初值应当大于终值)。缺省值为1。 (4)Exit For:退出循环,执行Next语句的后继语句。 (5)For与Next中间的语句块称为循环体,可以是多个语句。 例如: For I=1 To 10 Step 1 TextBox1.Text = TextBox1.Text & I & “ “ Next I 该程序段执行10次循环,在文本框内输出结果为: 1 2 3 4 5 6 7 8 9 10,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,例:求1100的累计和 For i=1 To 100 sum=sum+i Next i 计算机执行For语句的过程: 1)将初值赋予循环变量。 2)判断循环变量的值是否小于等于循环终值(步长值为正),如果条件满足,则执行循环体内的语句,循环变量增加步长值;否则循环结束,执行Next语句的后继语句。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例317】计算并输出下列调和级数前10项之和: Dim I As Integer, S As Single S = 0 For I = 1 To 10 S = S + 1 / I Next I MessageBox.Show(“S=“ & S),第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例318】学生成绩统计。用For-Next语句实现例316要求的功能。 smax = -1: smin = 101 For num = 1 To 30 ch = “请输入第“ & num & “个学生的成绩“ s = InputBox(ch) 输入学生成绩 sum = sum + s 学生成绩累加 保留最高分及对应学号 If s smax Then smax = s: nummax = num 保留最低分及对应学号 If s smin Then smin = s: nummin = num Next num,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例319】 输入一个正整数n,判断其是否为素数,若是素数,输出“是素数”;否则输出“不是素数”。 Dim N As Integer, I As Integer N = InputBox(“请输入一个整数:“, “例题“) For I = 2 To N - 1 If N Mod I = 0 Then MessageBox.Show(N & “不是素数”) GoTo 10 End If Next I MessageBox.Show(N & “是素数”) 10:,不是素数,输出以后转移。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,错误使用Goto语句的例子: For i = 1 To 10 10: MessageBox.Show(“循环体“) Next i GoTo 10 错误:从循环外转到循环内,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,在使用循环语句时,还应注意:在循环体内不能改变循环变量的初值、终值、步长值。例如: a = 2: b = 6: c = 2 For i = a To b Step c a = 3: b = 10: c = 1 TextBox1.Text = TextBox1.Text & i & “ “ Next i 程序执行结果为: 2 4 6,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,循环语句嵌套:在一个循环结构的循环体内包含另一个或多个循环结构(也称为多重循环)。例如: For m=1 To 9 For n=1 To 9 TextBox1.Text = TextBox1.Text & m*n & “ “ Next n TextBox1.Text = TextBox1.Text & vbCrLf Next m,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,注意: (1)内外层循环不能交叉,例如: For I=1 To 5 For J=1 To 5 : : Next I Next J (2)嵌套循环变量名不可相同,例如: For I=1 To 5 For I=1 To 5 : : Next I Next I,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例320】利用FOR循环结构语句,在文本框内显示由*号组成的下列图形: * * * * *,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,Dim I As Integer, J As Integer For I = 1 To 5 TextBox1.Text = TextBox1.Text & Space(8 - I) For J = 1 To 2 * I - 1 TextBox1.Text = TextBox1.Text & “*“ Next J TextBox1.Text = TextBox1.Text & vbCrLf Next I 外层I循环控制行数;内层J循环控制列数 使用Space函数输出空格以确定每行输出的起始位置。 外层循环中的vbCrlf起换行的作用,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例321】在文本框内显示2到100之间的素数,要求每行输出5个素数。 Dim I As Integer, K As Integer, N As Integer For k = 2 To 100 For I = 2 To k - 1 If k Mod I = 0 Then GoTo 10 End If Next I If k 10 Then TextBox1.Text = TextBox1.Text & k & Space(3) Else TextBox1.Text = TextBox1.Text & k & Space(2) End If N = N + 1 If N = 5 Then N = 0:TextBox1.Text = TextBox1.Text & vbCrLf 10: Next K,每行输出5个数字,依次判断2100之间的每一个数,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,请考虑:如何将【例39】改成由For-Next构成的循环结构(假设循环10次)。 学习要点 熟练使用 For-Next语句进行程序设计。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,二、条件循环控制,当型循环结构,直到型循环结构,1、流程图中P是条件; A可以是一个简单语句,也可以是一个基本结构 2、条件循环控制用于处理无法预先确定循环次数的情况,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,(一)四种形式的条件循环控制语句,Do While Loop,Do Loop While ,Do Until Loop,Do Loop Until ,先测型,后测型,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,1. DoLoop While语句 语句功能:重复执行循环体内的语句,直到条件不成立(条件值为False)。 语句格式: Do 语句块 Loop While 条件 说明: (1)条件可以是关系表达式、逻辑表达式、数值表达式。数值表达式的值非0,则为True(条件满足);数值表达式的值为0条件值为False(条件不满足)。例如:,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,s = 5 Do Print s s = 0 Loop While s 进入循环后条件表达式S的值等于0,即条件值为False,因此循环结束。 (2)DoLoop中间的语句块称为循环体,可以包含多个语句。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,(3)计算机执行DoLoop While语句的过程: 1)首先执行Do和Loop之间的语句。 2)当执行到Loop语句时,进行条件判断。若值是True(满足条件),则继续执行Do和Loop之间的语句块(循环)。若值是False(不满足条件),则循环结束,执行DoLoop While语句的后继语句。 例: Do PW=InputBox(“输入密码“) Loop While PW“ABCD“ 该程序段将反复执行,直到输入正确的密码“ABCD”后循环结束。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,2. DoLoop Until语句 语句功能:重复执行循环体内的语句,直到条件成立(条件值为True)。 语句格式: Do 语句块 Loop Until 条件 说明: (1) 语句中的条件与DoLoop While语句的条件相同。 (2) 计算机执行DoLoop Until语句的过程:,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,1)首先执行Do和Loop之间的语句。 2)当执行到Loop语句时,进行条件判断。与DoLoop While相反,若值是False(不满足条件),则继续执行Do和Loop之间的语句块(循环)。若值是True(满足条件),则循环结束,执行DoLoop Until语句的后继语句。 例: Do PW=InputBox(“输入密码“) Loop Until PW=“ABCD“ 注意,DoLoop While语句与DoLoop Until语句对条件的逻辑设置相反。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,3. Do WhileLoop语句 语句功能:若条件成立,则重复执行循环。 语句格式: Do While 条件 语句块 Loop 说明: (1)语句中的条件与DoLoop While语句的条件相同。 (2)计算机执行Do WhileLoop语句的过程:,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,首先判断Do While语句后的条件,若值是True,则执行Do和Loop之间的语句;若值是False,则循环结束,执行Do WhileLoop语句的后继语句。 例: PW=InputBox(“输入密码“) Do While PW“ABCD“ PW=InputBox(“输入密码“) Loop 该程序段首先判断变量 PW 的值是否为“ABCD”,若不是“ABCD”则执行循环,直到输入“ABCD”后循环结束。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,4. Do UntilLoop 语句 语句功能:若条件不成立,则重复执行循环。 语句格式: Do Until 条件 语句 Loop 说明: (1)语句中的条件与前三种语句的条件相同。 (2)计算机执行Do UntilLoop语句的过程: 首先判断Do Until语句后的条件,若值是False,则执行Do和Loop之间的语句;若值是True,则循环结束,执行Do UntilLoop语句的后继语句。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,例: PW=InputBox(“输入密码“) Do Until PW=“ABCD“ PW=InputBox(“输入密码“) Loop 该程序段首先判断变量PW的值是否为“ABCD”,若不是“ABCD”则执行循环,直到输入“ABCD”后循环结束。 注意:Do WhileLoop语句与Do UntilLoop语句对条件的逻辑设置是相反的,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,4种条件语句的比较: 1) Do PW=InputBox(“输入密码“) Loop While PW“ABCD“ 2) Do PW=InputBox(“输入密码“) Loop Until PW=“ABCD“,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,3) PW=InputBox(“输入密码“) Do While PW“ABCD“ PW=InputBox(“输入密码“) Loop 4) PW=InputBox(“输入密码“) Do Until PW=“ABCD“ PW=InputBox(“输入密码“) Loop,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,(二)条件循环控制的几个问题 (1) 循环次数:取决于循环体的各语句如何去影响循环终止条件。条件表达式中的各个变量可称为循环控制变量。例如: k=10 Do While k0 a=a+1 b=b+1 Loop 结果:“死循环”-重复不停地执行循环体。 修改方法:在Loop语句前可增加一个诸如 k = k - 1 的语句。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,(2) 四种不同形式的条件循环,根据其功能可分成两类: 1)在循环之前先判断条件是否成立(先判后做) Do WhileLoop与 Do UntilLoop 2)在循环之后判断条件是否成立(先做后判) Do Loop While 与Do Loop Until 两类循环的区别:“先做后判”时循环至少被执行一次,而“先判后做”时循环可能一次也不被执行。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,(3) 在Do While或 Do Until语句之前,一般应先确定循环控制变量的初值。例如: s=InputBox(“请输入:“) Do While s9999 Sum=sum+s s=InputBox(“请输入:“) Loop (4) 条件循环语句允许循环嵌套。 (5) 在条件循环中可以使用 Exit Do 语句,以退出循环。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,DoLoop语句,Do While Loop,Do Loop While ,Do Until Loop,Do Loop Until ,Until 相当于 While not 可用 Exit Do 中止循环,先测型,后测型,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,先测型与后测型的比较,先测试条件,至少执行一次,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例322】计算并显示满足下列不等式的调和级数的项数: 1+1/2+1/3+1/n E 用循环结构求级数和的问题:求级数和的项数和精度都是有限的,否则可能会溢出或死循环,本例根据某项值的精度控制循环的结束。 累加与连乘 累加:在原有和的基础上一次次地加上一个数,如e=e+t; 连乘:在原有积的基础上一次次地乘以一个数,如n=n*I。,第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例323】从键盘输入两个正整数m和n,用辗转相除法计算并输出m和n的最大公约数。 算法简介:设m=na+r1(0r1n),即m除以n的余数为r1,那么m和n的最大公约数与n和r1的最大公约数相同。若r1=0,则n就是m和n的最大公约数。若r10,再对n和r1重复上面的过程,直到求出rn=0为止。 算法演示: (VB_NEW),第3章 VB.NET面向对象程序设计第3节3 循环结构语句,Dim a As Integer, b As Integer, r As Integer a = InputBox(“请输入第一个数据“) b = InputBox(“请输入第二个数据“) Do r = a Mod b a = b : b = r Loop While r 0 MessageBox.Show(a & “ 和 ” & b & “ 的最大 _ 公约数是 “ & a),第3章 VB.NET面向对象程序设计第3节3 循环结构语句,【例324】编写一个译码程序,将一个由大写字母组成的英语句子译成数字代码。译码规则:以数字1代替字母A、数字2代替字母B、数字26代替字母Z,如遇空格则输出*号。英语句子以句号结束。 设letter为字符串变量,存放输入的一个大写字母;code为整型变量,存放某大写字母译码后对应的数字编码。 由编码规则可知,字母

温馨提示

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

最新文档

评论

0/150

提交评论