《VB第3章第3节3循环结构》由会员分享,可在线阅读,更多相关《VB第3章第3节3循环结构(45页珍藏版)》请在金锄头文库上搜索。
1、3.3 3.3 结构化程序设计语句结构化程序设计语句语句类别语句类别语句名称语句名称顺序语句顺序语句赋值语句赋值语句结束语句结束语句条件语句条件语句条件语句(条件语句(If If 语句)语句)选择语句(选择语句(Select Select 语句)语句)转移语句转移语句GotoGoto语句语句循环语句循环语句计数循环(计数循环(For/Next For/Next 语句)语句)条件循环(条件循环(DoLoopDoLoop语句)语句)第3章 VB.NET面向对象程序设计第3节3 循环结构语句循环控制循环控制本节目标本节目标1. 掌握掌握For循环(计数循环)和循环(计数循环)和Do/Loop循环循环
2、(条件循环)结构的应用。(条件循环)结构的应用。2. 理解理解 ExitFor、ExitDo 在程序控制中的作用。在程序控制中的作用。3. 掌握循环程序设计的基本方法掌握循环程序设计的基本方法。4. 掌握逻辑运算符的使用。掌握逻辑运算符的使用。第3章 VB.NET面向对象程序设计第3节3 循环结构语句循循环环控控制制 循环的本质:不断地重复某种动作。循环的本质:不断地重复某种动作。 在许多问题中需要用到循环控制。例如,求若在许多问题中需要用到循环控制。例如,求若干个数之和:干个数之和: 11+ 22+ 33=? 1+2+3+4+=? 对计算机程序而言,循环必须具备两个重要因素:对计算机程序而言
3、,循环必须具备两个重要因素:1. 在一定的条件下,重复执行一组指令。在一定的条件下,重复执行一组指令。2. 必然出现不满足条件的情况,使循环终止。必然出现不满足条件的情况,使循环终止。第3章 VB.NET面向对象程序设计第3节3 循环结构语句例:求例:求1 1100100的和。的和。n根据已有的知识,可以用根据已有的知识,可以用“1+2+1+2+100+100”来求解,但来求解,但显然很繁琐。现在换个思路来考虑:显然很繁琐。现在换个思路来考虑:1 1、首先设置一个累加器、首先设置一个累加器sumsum,其初值为其初值为0 0;2 2、利用、利用 sum = sum+nsum = sum+n 来
4、计算(来计算(n n依次取依次取1 1、2 2、100100),只要解决以下),只要解决以下3 3个问题即可:个问题即可:(1 1)将)将n n的初值置为的初值置为1 1;(2 2)每执行)每执行1 1次次 sum = sum+n sum = sum+n 后,后,n n 增加增加1 1 n=n+1 n=n+1 ;(3 3)当当n n增到增到101101时,停止计算。此时,时,停止计算。此时,sumsum的值就是的值就是1 1100100的累计和。的累计和。n根据已有的知识,单独实现每一步都不难。由于需要经根据已有的知识,单独实现每一步都不难。由于需要经常使用这种重复计算结构(循环结构),常使用
5、这种重复计算结构(循环结构),VBVB语言提供了语言提供了2 2类循环语句来实现,以简化、并规范循环结构程序设计。类循环语句来实现,以简化、并规范循环结构程序设计。第3章 VB.NET面向对象程序设计第3节3 循环结构语句在在VBVB语言语言中中可可用以下语句用以下语句实现循环:实现循环:1.用用Goto 和和If 构成循环构成循环2. For 语句语句3. Do Loop 语句语句第3章 VB.NET面向对象程序设计第3节3 循环结构语句3.3.3 3.3.3 循环结构语句循环结构语句 一、计数循环控制语句(一、计数循环控制语句(For NextFor Next语句)语句)n语句功能:按指定
6、的次数重复执行某组语句。语句功能:按指定的次数重复执行某组语句。n语句格式:语句格式: For For 循环变量循环变量 = = 初值初值 To To 终值终值 Step Step 步长值步长值 语句块语句块 Exit ForExit For 语句块语句块 Next Next 循环变量循环变量 流程图:流程图:第3章 VB.NET面向对象程序设计第3节3 循环结构语句说明:说明: (1 1)循)循环变环变量必量必须须是数是数值值型型变变量。量。 (2 2)初)初值值、终值终值、步、步长值长值可以是表达式。它可以是表达式。它们们的的类类型必型必须须与与循循环变环变量的量的类类型相同。型相同。 (
7、3 3)步长值可以是正数(初值应当小于终值)或负数(初值)步长值可以是正数(初值应当小于终值)或负数(初值应当大于终值)。缺省值为应当大于终值)。缺省值为1 1。 (4 4)Exit ForExit For:退出循环,执行退出循环,执行NextNext语句的后继语句。语句的后继语句。 (5 5)ForFor与与NextNext中间的语句块称为循环体,可以是多个语句。中间的语句块称为循环体,可以是多个语句。 例如:例如: For I=1 To 10 Step 1For I=1 To 10 Step 1 TextBox1.Text = TextBox1.Text & I & TextBox1.Te
8、xt = TextBox1.Text & I & Next I Next I 该程序段执行该程序段执行1010次循环,在文本框内输出结果为:次循环,在文本框内输出结果为: 1 2 3 4 5 6 7 8 9 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 in计算机执行计算机执行ForFor语句的过程:语句的过程:1)1)将初值赋予循环变量。将初值赋予循环变量。2)2)判判断断循循环环变变量量的的值值是是否否小小于于等等于于循循环环终终值值(
9、步步长长值值为为正正),如如果果条条件件满满足足,则则执执行行循循环环体体内内的的语语句句,循循环环变变量量增增加加步步长长值值;否否则则循循环环结结束束,执执行行NextNext语句的后继语句。语句的后继语句。第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例317317】计计算并算并输输出下列出下列调调和和级级数前数前1010项项之和:之和: Dim I As Integer, S As SingleDim I As Integer, S As SingleS = 0S = 0For I = 1 To 10For I = 1 To 10 S = S + 1 / I S =
10、S + 1 / INext INext IMessageBoxMessageBox.Show(S= & S).Show(S= & S)第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例318318】学生成绩统计。用学生成绩统计。用For-NextFor-Next语句实现例语句实现例316316要要求的功能。求的功能。smax = -1: smin = 101 For num = 1 To 30 ch = 请输入第请输入第 & num & 个学生的成绩个学生的成绩 s = InputBox(ch) 输入学生成绩输入学生成绩 sum = sum + s 学生成绩累加学生成绩累加 保
11、留最高分及对应学号保留最高分及对应学号 If s smax Then smax = s: nummax = num 保留最低分及对应学号保留最低分及对应学号 If s smin Then smin = s: nummin = num Next num第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例319319】 输输入一个正整数入一个正整数n n,判断其是否判断其是否为为素数,若素数,若是素数,是素数,输输出出“是素数是素数”;否;否则输则输出出“不是素数不是素数”。 Dim N As Integer, I As IntegerN = InputBox(请输入一个整数:请输入
12、一个整数:, 例题例题)For I = 2 To N - 1 If N Mod I = 0 Then MessageBox.Show(N & 不是素数不是素数”) GoTo 10 End IfNext IMessageBox.Show(N & 是素数是素数”)10:不是素数,输出以不是素数,输出以后转移。后转移。第3章 VB.NET面向对象程序设计第3节3 循环结构语句n错误使用错误使用GotoGoto语句的例子:语句的例子: For i = 1 To 10For i = 1 To 10 10: 10: MessageBoxMessageBox.Show(.Show(循循环环体体) Next
13、iNext i GoToGoTo 10 10错误:从循环外转到循环内错误:从循环外转到循环内第3章 VB.NET面向对象程序设计第3节3 循环结构语句n在使用循环语句时,还应注意:在使用循环语句时,还应注意:在循环体内不能在循环体内不能改变循环变量的初值、终值、步长值。改变循环变量的初值、终值、步长值。例如:例如: a = 2: b = 6: c = 2a = 2: b = 6: c = 2 For i = a To b Step c For i = a To b Step c a = 3: b = 10: c = 1 a = 3: b = 10: c = 1 TextBox1.Text =
14、TextBox1.Text & i & TextBox1.Text = TextBox1.Text & i & Next i Next i程序程序执执行行结结果果为为: 2 4 6 2 4 6 第3章 VB.NET面向对象程序设计第3节3 循环结构语句n循环语句嵌套循环语句嵌套:在一个循环结构的循环体内包含:在一个循环结构的循环体内包含另一个或多个循环结构(也称为多重循环)。例另一个或多个循环结构(也称为多重循环)。例如:如:For m=1 To 9For m=1 To 9 For n=1 To 9For n=1 To 9 TextBox1.Text = TextBox1.Text & m*n
15、 & TextBox1.Text = TextBox1.Text & m*n & Next n Next n TextBox1.Text = TextBox1.Text & TextBox1.Text = TextBox1.Text & vbCrLfvbCrLfNext mNext m第3章 VB.NET面向对象程序设计第3节3 循环结构语句注意:注意: (1) (1)内外层循环不能交叉,例如:内外层循环不能交叉,例如:For For I I=1 To 5=1 To 5 For For J J=1 To 5=1 To 5 : : : : Next Next I INext Next J J(2
16、)(2)嵌套循环变量名不可相同,例如:嵌套循环变量名不可相同,例如:For For I I=1 To 5=1 To 5 For For I I=1 To 5=1 To 5 : : : : Next Next I INext Next I I第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例320320】利用】利用FORFOR循循环结环结构构语语句,在文本框内句,在文本框内显显示由示由* *号号组组成的下列成的下列图图形:形: * * * * * * * * * *第3章 VB.NET面向对象程序设计第3节3 循环结构语句Dim I As Integer, J As Intege
17、rDim I As Integer, J As IntegerFor I = 1 To 5For I = 1 To 5 TextBox1.Text = TextBox1.Text = TextBox1.Text & Space(8 - I)TextBox1.Text & Space(8 - I) For J = 1 To 2 * I - 1For J = 1 To 2 * I - 1 TextBox1.Text = TextBox1.Text & * TextBox1.Text = TextBox1.Text & * Next J Next J TextBox1.Text = TextBox1
18、.Text & TextBox1.Text = TextBox1.Text & vbCrLfvbCrLfNext INext In外外层层I I循循环环控制行数控制行数;内内层层J J循循环环控制列数控制列数n使用使用SpaceSpace函数函数输输出空格以确定每行出空格以确定每行输输出的起始位置。出的起始位置。n外层循环中的外层循环中的vbCrlfvbCrlf起换行的作用起换行的作用第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例321321】在文本框内】在文本框内显显示示2 2到到100100之之间间的素数,要求每行的素数,要求每行输输出出5 5个素数。个素数。 Dim
19、I As Integer, K As Integer, N As IntegerDim I As Integer, K As Integer, N As Integer For k = 2 To 100 For k = 2 To 100 For I = 2 To k - 1 For I = 2 To k - 1 If k Mod I = 0 Then If k Mod I = 0 Then GoToGoTo 10 10 End If End If Next I Next I If k 10 Then If k 10 Then TextBox1.Text = TextBox1.Text & k
20、& Space(3) TextBox1.Text = TextBox1.Text & k & Space(3) Else Else TextBox1.Text = TextBox1.Text & k & Space(2) TextBox1.Text = TextBox1.Text & k & Space(2) End If End If N = N + 1 N = N + 1 If N = 5 Then N = 0 If N = 5 Then N = 0:TextBox1.Text = TextBox1.Text & TextBox1.Text = TextBox1.Text & vbCrLf
21、vbCrLf10:10:Next KNext K 每行输出每行输出5 5个数字个数字依次判断依次判断2 2100100之间的每之间的每一个数一个数第3章 VB.NET面向对象程序设计第3节3 循环结构语句n请考虑:如何将【例请考虑:如何将【例3939】改成由】改成由For-NextFor-Next构构成的循环结构(假设循环成的循环结构(假设循环1010次)。次)。n学习要点学习要点熟练使用熟练使用 For-NextFor-Next语句语句进行程序设计。进行程序设计。第3章 VB.NET面向对象程序设计第3节3 循环结构语句二、条件循环控制二、条件循环控制当型循环结构当型循环结构直到型循环结构直
22、到型循环结构PAFTAPTF 1、流程图中、流程图中P是条件;是条件; A可以是一个简单语句,也可以是一个基本结构可以是一个简单语句,也可以是一个基本结构2 2、条件循环控制用于处理无法预先确定循环次数的情况、条件循环控制用于处理无法预先确定循环次数的情况第3章 VB.NET面向对象程序设计第3节3 循环结构语句(一)四种形式的条件循环控制语句(一)四种形式的条件循环控制语句Do While LoopDo Loop While Do Until LoopDo Loop Until 先先测测型型后后测测型型第3章 VB.NET面向对象程序设计第3节3 循环结构语句1. 1. DoLoop Whi
23、leDoLoop While语句语句n语语句句功功能能:重重复复执执行行循循环环体体内内的的语语句句,直直到到条条件件不成立(条件值为不成立(条件值为FalseFalse)。)。n语句格式:语句格式: DoDo 语句块语句块 Loop While Loop While 条件条件n说明:说明: (1 1)条件)条件可以是可以是关系表达式、关系表达式、逻辑逻辑表达式表达式、数数值值表达式。数表达式。数值值表达式的表达式的值值非非0 0,则为则为TrueTrue(条件条件满满足);数足);数值值表达式的表达式的值为值为0 0条件条件值为值为FalseFalse(条件条件不不满满足)。足)。例如:例如
24、:第3章 VB.NET面向对象程序设计第3节3 循环结构语句 s = 5 s = 5 Do Do Print s Print s s = 0 s = 0 Loop While Loop While s sv进入循环后条件表达式进入循环后条件表达式S S的值等于的值等于0 0,即条件值为,即条件值为FalseFalse,因此循环结束。因此循环结束。(2 2)DoLoopDoLoop中中间间的的语语句句块块称称为为循循环环体,可以体,可以包含多个包含多个语语句。句。 第3章 VB.NET面向对象程序设计第3节3 循环结构语句(3 3)计计算机算机执执行行DoLoop WhileDoLoop Whi
25、le语语句的句的过过程:程: 1 1)首先首先执执行行DoDo和和LoopLoop之之间间的的语语句。句。 2 2)当当执执行到行到LoopLoop语语句句时时,进进行条件判断。若行条件判断。若值值是是TrueTrue(满满足条件),足条件),则继续执则继续执行行DoDo和和LoopLoop之之间间的的语语句句块块(循(循环环)。)。若若值值是是FalseFalse(不不满满足条件),足条件),则则循循环结环结束束,执执行行DoLoop WhileDoLoop While语语句的后句的后继继语语句。句。例:例: DoDo PW= PW=InputBoxInputBox(输输入密入密码码) Lo
26、op While PWABCDLoop While PWABCDv该该程序段将反复程序段将反复执执行,直到行,直到输输入正确的密入正确的密码码“ABCD”ABCD”后循后循环结环结束。束。 第3章 VB.NET面向对象程序设计第3节3 循环结构语句2. 2. DoLoop UntilDoLoop Until语句语句n语语句句功功能能:重重复复执执行行循循环环体体内内的的语语句句,直直到到条条件件成立(条件值为成立(条件值为TrueTrue)。)。n语句格式:语句格式: DoDo 语句块语句块 Loop Until Loop Until 条件条件n说明:说明:(1) (1) 语语句句中中的的条条
27、件件与与DoLoop DoLoop WhileWhile语语句句的的条条件件相同。相同。(2) (2) 计算机执行计算机执行DoLoop UntilDoLoop Until语句的过程:语句的过程:第3章 VB.NET面向对象程序设计第3节3 循环结构语句1 1)首先首先执执行行DoDo和和LoopLoop之之间间的的语语句。句。 2 2)当当执执行行到到LoopLoop语语句句时时,进进行行条条件件判判断断。与与DoLoop DoLoop WhileWhile相相反反,若若值值是是FalseFalse(不不满满足足条条件件),则则继继续续执执行行DoDo和和LoopLoop之之间间的的语语句句
28、块块(循循环环)。若若值值是是TrueTrue(满满足足条条件件),则则循循环环结结束束,执执行行DoLoop UntilDoLoop Until语语句的后句的后继语继语句。句。 例:例: DoDo PW= PW=InputBoxInputBox(输输入密入密码码) Loop Until PW=ABCDLoop Until PW=ABCDv注注 意意 , DoLoop DoLoop WhileWhile语语 句句 与与 DoLoop DoLoop UntilUntil语句语句对条件的逻辑设置相反对条件的逻辑设置相反。第3章 VB.NET面向对象程序设计第3节3 循环结构语句3. 3. Do W
29、hileLoopDo WhileLoop语句语句n语句功能:若条件成立,则重复执行循环。语句功能:若条件成立,则重复执行循环。n语句格式:语句格式: Do While Do While 条件条件 语句块语句块 LoopLoopn说明:说明: (1)(1)语句中的条件与语句中的条件与DoLoop WhileDoLoop While语句的条件语句的条件相同。相同。(2)(2)计算机执行计算机执行Do WhileLoopDo WhileLoop语句的过程:语句的过程:第3章 VB.NET面向对象程序设计第3节3 循环结构语句首先判断首先判断Do WhileDo While语句后的条件,若值是语句后的
30、条件,若值是TrueTrue,则执行则执行DoDo和和LoopLoop之间的语句;之间的语句;若值是若值是FalseFalse,则则循环结束循环结束,执行,执行Do WhileLoopDo WhileLoop语句的后继语语句的后继语句。句。例:例: PW=PW=InputBoxInputBox(输入密码输入密码) Do While PWABCDDo While PWABCD PW= PW=InputBoxInputBox(输入密码输入密码) Loop Loop v该程序段首先判断变量该程序段首先判断变量 PW PW 的值是否为的值是否为“ABCD”ABCD”,若不是若不是“ABCD”ABCD”
31、则执行循环,直到输入则执行循环,直到输入“ABCD”ABCD”后循环结束。后循环结束。第3章 VB.NET面向对象程序设计第3节3 循环结构语句4. 4. Do UntilLoop Do UntilLoop 语句语句 n语句功能:若条件不成立,则重复执行循环。语句功能:若条件不成立,则重复执行循环。n语句格式:语句格式: Do Until Do Until 条件条件 语句语句 LoopLoopn说明:说明:(1)(1)语句中的条件与前三种语句的条件相同。语句中的条件与前三种语句的条件相同。(2)(2)计算机执行计算机执行Do UntilLoopDo UntilLoop语句的过程:语句的过程:v
32、首先判断首先判断Do UntilDo Until语句后的条件,若值是语句后的条件,若值是FalseFalse,则执行则执行DoDo和和LoopLoop之间的语句;之间的语句;若值是若值是TrueTrue,则则循环结束循环结束,执行,执行Do UntilLoopDo UntilLoop语句的后继语语句的后继语句。句。第3章 VB.NET面向对象程序设计第3节3 循环结构语句例:例: PW=PW=InputBoxInputBox(输入密码输入密码) Do Until PW=ABCDDo Until PW=ABCD PW= PW=InputBoxInputBox(输入密码输入密码) Loop Loo
33、p v该程序段首先判断变量该程序段首先判断变量PWPW的值是否为的值是否为“ABCD”ABCD”,若不是若不是“ABCD”ABCD”则执行循环,直到输入则执行循环,直到输入“ABCD”ABCD”后循环结束。后循环结束。注意注意:Do WhileLoopDo WhileLoop语句与语句与Do UntilLoopDo UntilLoop语句对条件的逻辑设置是相反的语句对条件的逻辑设置是相反的第3章 VB.NET面向对象程序设计第3节3 循环结构语句4 4种条件语句的比较:种条件语句的比较:1 1) DoDo PW= PW=InputBoxInputBox(输输入密入密码码)Loop While
34、PWABCDLoop While PWABCD2 2)DoDo PW= PW=InputBoxInputBox(输输入密入密码码)Loop Until PW=ABCDLoop Until PW=ABCD第3章 VB.NET面向对象程序设计第3节3 循环结构语句3 3)PW=PW=InputBoxInputBox(输入密码输入密码)Do While PWABCDDo While PWABCD PW= PW=InputBoxInputBox(输入密码输入密码)Loop Loop 4 4)PW=PW=InputBoxInputBox(输入密码输入密码)Do Until PW=ABCDDo Until
35、 PW=ABCD PW= PW=InputBoxInputBox(输入密码输入密码)Loop Loop 第3章 VB.NET面向对象程序设计第3节3 循环结构语句(二)条件循环控制的几个问题(二)条件循环控制的几个问题 (1) (1) 循环次数:取决于循环体的各语句循环次数:取决于循环体的各语句如何去影响如何去影响循环终止条件循环终止条件。条件表达式中的各个变量可称为。条件表达式中的各个变量可称为循环控制变量。例如:循环控制变量。例如: k=10k=10 Do While k0 Do While k0 a=a+1 a=a+1 b=b+1 b=b+1 Loop Loop结果:结果:“死循环死循环
36、”-”-重复不停地执行循环体。重复不停地执行循环体。修改方法:修改方法:在在LoopLoop语句前可增加一个诸如语句前可增加一个诸如 k = k - 1 k = k - 1 的语句。的语句。第3章 VB.NET面向对象程序设计第3节3 循环结构语句(2) (2) 四种不同形式的条件循环,根据其功能可分四种不同形式的条件循环,根据其功能可分成两类:成两类:1 1)在循环之前先判断条件是否成立()在循环之前先判断条件是否成立(先判后做先判后做) Do WhileLoopDo WhileLoop与与 Do UntilLoopDo UntilLoop2 2)在循环之后判断条件是否成立(在循环之后判断条
37、件是否成立(先做后判先做后判) Do Loop While Do Loop While 与与Do Loop UntilDo Loop Untiln两类循环的区别两类循环的区别:“先做后判先做后判”时循环至少被时循环至少被执行一次,而执行一次,而“先判后做先判后做”时循环可能一次也时循环可能一次也不被执行。不被执行。第3章 VB.NET面向对象程序设计第3节3 循环结构语句(3) (3) 在在Do WhileDo While或或 Do UntilDo Until语句之前,一般应语句之前,一般应先先确定循环控制变量的初值确定循环控制变量的初值。例如:。例如: s=s=InputBoxInputBo
38、x(请输入:请输入:) Do While s9999Do While s9999 Sum=sum+s Sum=sum+s s= s=InputBoxInputBox(请输入:请输入:) LoopLoop(4) (4) 条件循环语句允许循环嵌套。条件循环语句允许循环嵌套。(5) (5) 在条件循环中可以使用在条件循环中可以使用 Exit Do Exit Do 语句,以退语句,以退出循环。出循环。第3章 VB.NET面向对象程序设计第3节3 循环结构语句DoLoop语句语句Do While LoopDo Loop While Do Until LoopDo Loop Until Until 相当于
39、相当于 While not 可用可用 Exit Do 中止循环中止循环先先测测型型后后测测型型第3章 VB.NET面向对象程序设计第3节3 循环结构语句先测型与后测型的比较先测型与后测型的比较先测试条件至少执行一次Yes条件语句块Loop的下条语句No条件语句块Loop的下条语句YesNo第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例322322】计算并显示满足下列不等式的调和级】计算并显示满足下列不等式的调和级数的数的项数项数: 1+1/2+1/3+1/n E用用循循环环结结构构求求级级数数和和的的问问题题:求求级级数数和和的的项项数数和和精精度度都都是是有有限限的的,否
40、否则则可可能能会会溢溢出出或或死死循循环环,本本例根据某项值的精度控制循环的结束。例根据某项值的精度控制循环的结束。累加与连乘累加与连乘累累加加:在在原原有有和和的的基基础础上上一一次次次次地地加加上上一一个个数数,如如e=e+t;连连乘乘:在在原原有有积积的的基基础础上上一一次次次次地地乘乘以以一一个个数数,如如n=n*I。第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例例323323】从键盘输入两个正整数】从键盘输入两个正整数m m和和n n,用辗转用辗转相除法计算并输出相除法计算并输出m m和和n n的最大公约数。的最大公约数。 算法简介:设算法简介:设m=m=nana+r
41、+r1 1(0r(0r1 1n)n),即即m m除以除以n n的余的余数为数为r r1 1,那么那么m m和和n n的最大公约数与的最大公约数与n n和和r r1 1的最大公的最大公约数相同。若约数相同。若r1=0r1=0,则则n n就是就是m m和和n n的最大公约数。的最大公约数。若若r r1 100,再对再对n n和和r r1 1重复上面的过程,直到求出重复上面的过程,直到求出r rn n=0=0为止。为止。算法演示:算法演示: ( (VB_NEW)VB_NEW)第3章 VB.NET面向对象程序设计第3节3 循环结构语句Dim a As Integer, b As Integer, r
42、As Integera = InputBox(请输入第一个数据请输入第一个数据)b = InputBox(请输入第二个数据请输入第二个数据)Do r = a Mod b a = b : b = rLoop While r 0MessageBox.Show(a & “ 和和 ” & b & “ 的最大的最大 _ 公约数是公约数是 & a)第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例324324】编编写一个写一个译码译码程序,将一个由大写字程序,将一个由大写字母母组组成的英成的英语语句子句子译译成数字代成数字代码码。译码规则译码规则:以:以数字数字1 1代替字母代替字母A A
43、、数字数字2 2代替字母代替字母B B、数字数字2626代替字母代替字母Z Z,如遇空格如遇空格则输则输出出* *号。英号。英语语句子以句子以句号句号结结束。束。 n设设letterletter为为字符串字符串变变量,存放量,存放输输入的一个入的一个大写字大写字母母;codecode为为整型整型变变量,存放某大写字母量,存放某大写字母译码译码后后对对应应的数字的数字编码编码。 n由由编码规则编码规则可知,字母的数字可知,字母的数字编码编码都在都在1 1到到2626之之间间,因此,因此译码译码的算法如下:的算法如下: code=code=ascasc(letter)-(letter)-ascas
44、c(A)+1 (A)+1 第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例325325】从】从键盘输键盘输入任意正数入任意正数m m,编编程程计计算算第一第一个不小于个不小于m m的的FibonacciFibonacci数及其数及其项项号(即最小号(即最小n n和和F Fm m,使使F Fn nmm)。)。已知已知FibonacciFibonacci数列定数列定义义如下:如下: F F0 0=0=0,F F1 1=1=1,F F2 2=1=1,F Fn+2n+2= F= Fn+1n+1+F+Fn n (n (n0)0) 主要程序:主要程序: m = m = InputBoxI
45、nputBox(请输入一个正整数:请输入一个正整数:) fstfst = 0 : = 0 : sndsnd = 1 : n = 2 = 1 : n = 2 Do Until Do Until sndsnd = m = m trdtrd = = sndsnd + + fstfst : : fstfst = = sndsnd : : sndsnd = = trdtrd n = n + 1n = n + 1 Loop Loop3 3个变量前后迭代,产生一个新个变量前后迭代,产生一个新的数值存放在变量的数值存放在变量sndsnd中中第3章 VB.NET面向对象程序设计第3节3 循环结构语句【例【例32
46、6326】对从键盘输入的以对从键盘输入的以-1-1结束的自然数列结束的自然数列中连续相同的元素(子数列)进行压缩。如依次中连续相同的元素(子数列)进行压缩。如依次输入:输入:4 3 3 3 3 2 5 5 5 9 -14 3 3 3 3 2 5 5 5 9 -1,则,则在窗体上输出:在窗体上输出:4 4*3 2 3*5 9 4 4*3 2 3*5 9 。 第3章 VB.NET面向对象程序设计第3节3 循环结构语句D1 = D1 = InputBoxInputBox(请输入一个整数:请输入一个整数:) ) 输入开始字符输入开始字符DoDo C = 1 : D2 = C = 1 : D2 = In
47、putBoxInputBox(请输入一个整数:请输入一个整数:) Do While D2 = D1Do While D2 = D1 C = C + 1 C = C + 1 统计相同的元素个数统计相同的元素个数 D2 = D2 = InputBoxInputBox(请输入一个整数:请输入一个整数:) LoopLoop If C = 1 Then If C = 1 Then TextBox1.Text = TextBox1.Text & D1 & TextBox1.Text = TextBox1.Text & D1 & Else Else TextBox1.Text = TextBox1.Text
48、 & C & * & D1 & “TextBox1.Text = TextBox1.Text & C & * & D1 & “ 输出子数列的压缩形式输出子数列的压缩形式 End IfEnd If D1 = D2 D1 = D2 保存新子数列的开始字符保存新子数列的开始字符Loop Until D1 = -1Loop Until D1 = -1第3章 VB.NET面向对象程序设计第3节3 循环结构语句nVB语句分类语句分类类别类别语句语句格式格式顺序语句顺序语句赋值语句赋值语句变量变量= =表达式表达式结束语句结束语句EndEnd条件语句条件语句If If 语句语句If If 条件条件 Then Then 语句语句1 1 Else Else 语句语句22Select Select 语句语句Select Case Select Case 测试表达式测试表达式 Case Case 表达式表达式1 1 语句语句11 Case Else Case Else 语句语句End SelectEnd Select循环语句循环语句For For 语句语句For NextFor NextDoLoopDoLoop语句语句DoLoopDoLoop转移语句转移语句GotoGoto语句语句Goto Goto 标号标号/ /行号行号第3章 VB.NET面向对象程序设计第3节3 循环结构语句