For-next循环.doc_第1页
For-next循环.doc_第2页
For-next循环.doc_第3页
For-next循环.doc_第4页
For-next循环.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

For. Next循环语句Fornext循环简称为For循环。它是一种指定循环次数(事先知道循环次数)的循环程序结构。在这种结构中,使用了一个称为循环变量的特殊变量作为计数器,指定它的初始数值,然后每重复执行一次循环,循环变量就会自动增加或减少一个指定的数值(称为步长值),直到循环变量的改变达到最终的指定值,循环才停止执行。1For Next语句的语法格式For = To Step步长 语句块 Exit ForNext 循环变量功能:用来控制重复执行一组语句。指定循环变量以步长为增量,从初值到终值依次取值,并且对于循环变量的每一个值,把语句块执行一次。说明:(1)关键字For和Next成对出现,For是循环语句的开始,Next是循环语句的终端,必须出现在For语句的后面。在关键字For和Next之间的语句块叫循环体,它们将被重复执行指定的次数,执行的次数由初值、终值、步长值决定。(2)初值、终值和步长值都是数值表达式,步长值可以是正数,也可以为负数。如果步长值为1,可以省略不写,即系统默认步长值为1。(3)为必要参数,是用作循环计数器的数值变量,这个变量不能是数组元素。在循环体内,一般不提倡再给循环变量另外赋值。循环变量从初值开始,逐次按照步长值增加或减少而改变,直到超过终值,这时循环停止执行。这里所说的“超过”有两种含义:即大于或者小于。(4)和也都是必要参数。当初值小于终值时,必须是正数;反过来,如果初值大于终值,则步长值必须为负数。(5)如果循环体中安排了Exit For 语句,当程序执行到该语句时直接跳出循环结构,不再执行循环体中Exit For的后续语句(如果有),而是转到Next后面的其他指令继续执行。(6)Next语句中的可以省略。2. For. Next语句的执行过程:进入For.Next循环后,程序按照以下步骤执行:(1)若初值、终值和步长值为表达式,求出它们的值,并保存起来:(2)将初值赋给循环变量;(3)判断循环变量值是否超过终值(初值小于终值,且步长值为正时,指大于终值;初值大于终值且步长值为负时,指小于终值);超过终值时立即跳出循环,执行Next之后的语句。否则继续执行循环体。(4)遇到Next语句时,把循环变量的当前值加上步长值后再赋给循环变量。(5)转到(3)。执行的流程如图6-1所示。3. For. Next循环的循环次数从图6-1可以看出,For循环是先检测,后执行的循环形式。因此在下列2种情况下,循环体不会被执行:(1)初值小于终值,步长值为负数(2)初值大于终值,步长值为正数(3)如果初值=终值,不论步长值是正数还是负数,均执行一次循环体后跳出循环。循环的次数可以用以下公式表示:循环次数 n = INT(终值 - 初值)/步长值 + 1)例如,初值等于1,终值等于10,步长值等于2,则循环次数n为: n = INT (10 1)/2 + 1) = 5例6-1:课前思考解答方法:用For. Next语句实现分析:求从1到100共100个数的累加和,共需相加100次。每次数字变化(增值)为1,我们可以用变量S来保存累加和,并赋初值为0;变量k作为循环变量并作为加数(加到s中的数),设置其初值为1,终值为100,步长值为1(可以省略)。设计步骤(1)创建一个新工程,在窗体上添加如图6-2所示控件并设置控件属性,各控件属性如表6-1所示。表6-1 各控件属性设置值控件名属性属性值Label1Caption“1+2+3+100 =”Text1Text“”(空白)Command1Caption“计算”图6-2 程序界面 (2)编写程序代码。双击界面上的命令按钮,打开代码设计窗口给命令控件Command1编写如下代码: Private Sub Command1_Click()s = 0For k = 1 To 100s = s + kNext kText1.Text = sEnd Sub(3)运行程序运行程序后,单击命令按钮“计算”,文本框Text1中显示出计算的结果5050,如图6-3所示。6-3 计算结果 例6-2:设计程序,计算级数13 + 23 + 33 + 43 +.,直到累加和超过200为止。分析:本题也是一个求累加和的计算,但关键问题是不知道循环的次数到底是多少,无法设定循环变量的终值。我们可以事先将循环变量的终值设定为一个比较大的数,在循环体中用一个分支语句来检测累加的结果,只要累加和大于200时,就可以跳出循环,显示计算结果。(1)建立应用程序用户界面并设置各控件对象初始属性,如图6-4所示。图6-4 程序用户界面 (2)对命令按钮Command1编写Click事件代码: Private Sub Command1_Click()s = 0For k = 1 To 100s = s + k 3If s 200 Then Label2.Caption = 最后的项数是: & kExit ForEnd ifNext kText1.Text = sEnd Sub(3)运行程序,结果如图6-5所示。图6-5 程序运行结果 例6-3:设计程序,求100999之间所有的“水仙花”数。所谓“水仙花”数就是指一个三位数,其各位数字的立方等于该数本身。例如,153 = 13 + 53 + 33,故153就是“水仙花”数。 分析:求解该题的的关键是如何从一个三位数中分离出百位数、十位数和个位数来。可以用以下方法进行分离:设该三位数为I,由a、b、c三个数字组成,则:(1)百位数a = INT(I/100),例如 INT(353/100) = 3(2)十位数b = INT(I-100*a)/10),例如 INT(353-100*3)/10) = 5(3)个位数c = I-INT(I/10)*10,例如 353-INT(353/10)*10 = 353-35*10=3(1)设计用户界面,如图6-6所示。图6-6 程序界面 (2)编写命令按钮Command1的Click事件代码如下: Private Sub Command1_Click()For i = 100 To 999 Step 1 a = Int(i / 100) b = Int(i - 100 * a) / 10) c = i - Int(i / 10) * 10 If i = a 3 + b 3 + c 3 Then Print Print ; Print i End IfNext iEnd Sub(3)运行程序,结果如图6-7所示。4. For.Next语句的嵌套 单层循环可以解决一些简单的问题,但实际应用中有许多问题需要两层甚至更多层循环才能完成计算或处理。在一个循环结构中还包含另一个循环结构称为循环的嵌套。用For.Next语句构造循环嵌套结构,就是在For.Next语句中的循环体部分再安排另一层For .Next语句。嵌套的层数没有限制,但应满足以下规则:(1)每层循环必须有一个唯一的变量名作为循环变量名;(2)内层存循环必须完全放在外层循环的里面(外循环体内),内、外层循环不得相互交叉,如图6-8所示。正确的循环嵌套 错误的循环嵌套(内外层相互交叉) 图6-8循环嵌套结构例6-4:设计一个程序,打印乘法九九表。即打印11 = 1, 12=2,99=81。分析:先考虑怎样实现打印11 = 1, 12 = 2,19 = 9。这只要一个简单的For循环结构就可以实现:n=1for j=1 to 9s = n * jPrint s;Next j因为n被事先赋值为1,所以当循环变量j从1变到9时,打印的结果就是11 = 1, 12 = 2,19 = 9。要打印21 = 2, 22 = 4,29=18,就要将程序一开头的 n赋值为2。当需要打印整个九九表时,n的赋值就应从1开始,直到9为止依次改变。对应每个不同的n 的数值,执行一次j从1到9改变的For 循环。即n每次改变一个数值,j就从1变化到9,打印出n和j的乘积。这就提示我们要用到双层结构的For 循环程序结构来解决这个问题:For n = 1 to 9 For j = 1 to 9S = n * jPrint s;Next jNext n这个双层循环的执行过程是这样的:(1)把初值1赋给外层循环变量n (这个值一直保持到遇到外层循环的Next n后才改变)。然后开始执行外循环的循环体,即外循环For 和Next之间的其他语句。这时因为外循环的循环体正好又是一个For. Next语句构成的循环结构,称为内循环,于是在n=1时,j就要从1变化到9,反复执行9次,打印出11 = 1到19 = 9。(2)当内层循环被执行完毕后(j9),程序才能够执行(遇到)Next n语句,于是n增值为2。现在n 9)了,于是外层循环结束,整个程序执行完毕。这里应注意到,每次n改变时,内存循环变量j都被重新赋初值1。设计过程。(1)新建一个工程,在窗体上添加一个命令按钮控件Command1,并将其Caption属性设置为“开始计算”,如图6-9所示。图6-9 程序界面设计 (2)对命令按钮Command1编写Click 事件代码如下: Private Sub Command1_Click() Print Print *; For i = 1 T

温馨提示

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

评论

0/150

提交评论