资源简介 ——— 循环结构 程序设计的基本结构 某个固定位置上的工人劳动,有什么共同特点? 在一定的条件下,不断重复同样的的操作。 循环结构 循环结构也称为重复型结构,用于处理需要重复执行的一组操作。被重复执行的部分称为循环体。 重复一般是有条件的。即在满足一定的条件下才执行循环体(有条件的进入循环),或者满足一定的条件就不执行循环体(有条件的退出循环)。 按照控制方式,循环结构可分为当型循环和直到型循环,用语句 FOR/Next、Do/WHILE/Loop等描述。 流程图: A P N 入口 出口 Y 直到型 A P Y 入口 N 出口 当型 FOR—Next 循环 阅读如下程序代码:在窗体显示1到10之间所有自然数。 Private Sub Form_Click() i=1 Print i ; i= i +1 Print i; i= i +1 Print i; i= i +1 Print i; i= i +1 Print i; i= i +1 Print i; 1、 运行结果:1 2 3 4 5 6 7 8 9 10 i= i +1 Print i; i= i +1 Print i; i= i +1 Print i; i= i +1 Print i; End Sub FOR—Next 循环 Private Sub Form_Click() For i=1 To 10 Step 1 Print i ; Next i End Sub 2、 开 始 1→i i<=10 i+1→i 输出 i 结 束 Y N 阅读如下程序代码:在窗体显示1到10之间所有自然数。 运行结果:1 2 3 4 5 6 7 8 9 10 For <循环变量>=<初值> To <终值> [Step <步长>] <循环体> Next <循环变量> 注意: 1、在For循环语句中,For 和 Next是一对语句,必须成对出现,缺一不可。 2、Step可以省略,这时步长默认为“1” 。 FOR—Next(计数循环) 语句的一般格式: 执行循环体 循环变量没有超过终值 Y N 执行Next后继语句 初值 循环变量 循环变量+步长 循环变量 FOR—Next 循环 思考:循环变量的增量即步长,能否为0?如果为0,程序的运行结果怎样? 语句执行过程 注意: 3、步长可以为正,也可以为负。终止条件准确的说法是:沿循环变量的变化方向(初值到终值),循环变量的值“超过终值”(不是等于终值)。当步长为正时, “超过终值”是“大于终值”;当步长为负时, “超过终值”是“小于终值” 。 4、初值、终值和步长值既可以是常量,也可以是变量和表达式 。 FOR—Next(计数循环) 语句的一般格式: FOR—Next 循环 2、下列程序段中,循环体执行的次数是( ) x=0 For y=1 To 10 step -1 x=x+1 Next y A、1 B、0 C、10 D、4 1、在VB中,假定有以下程序段: For i=3 To 1 Print "VB" Next i 则语句Print “VB”的执行次数是:( ) A、出错 B、2 C、1 D、0 FOR—Next 循环 尝试练习:阅读如下程序代码,写出运行结果。 Private Sub command1_Click() Dim sum as integer sum=0 For i=1 To 10 Step 1 sum = sum + i Next i Print sum End Sub 答案:55 开 始 0→sum 1→i i<=10 sum+i→sum i+1→i 输出sum 结 束 Y N FOR—Next 循环 实践: 编程计算1到100之间所有偶数的和,要求step值为2。 拓展1 :编程实现在程序运行过程中任意输入一个自然数n,求 1到n之间所有偶数的和。 拓展2:参照课本 P24 实践 2,计算 100!的值。并回答:1、x=1是否可以省略?2、选择 x 的数据类型的理由。 开 始 0→sum 0→i i<=100 sum+i→sum i+2→i 输出sum 结 束 Y N FOR—Next 循环 讨论与思考一: Private Sub Form_Click() Dim sum as integer sum=0 For i= 1 To 10 Step 1 sum = sum + i Next i Print sum End Sub ⒉ 若有如下一段代码: For j=15 to 3 Step –2 Print j Next j 则循环结束时,循环变量j的值是多少? 是否就是 终值+步长? 1、本例中循环结束时,循环变量i的值是多少? 3、在程序中添加合适的语句,显示循环结束时循环变量的值。 Print i Print j For i= 1 To 10 Step 2 sum = sum + i Next i FOR—Next 循环 讨论与思考二: Private Sub Form_Click() Dim i as integer For i = 15 To 3 Step -2 Print i Next i End Sub 1、本例中循环结束时,循环体执行的次数是多少?能否用表达式写出? 2、在程序中添加合适的语句,显示循环结束时循环体执行的次数。 Dim i as integer,n as integer n=0 For i= 15 To 3 Step -2 n=n+1 Print i Next i Print n 如果在循环体中没有给循环变量赋值,则循环的次数可以直接从FOR语句中指定的参数计算出来。 循环的次数=int +1 循环终值 - 循环初值 步长 FOR—Next 循环 讨论与思考三: Private Sub Form_Click() Dim i as integer For i = 15 To 3 Step -2 i= i -2 Print i Next i End Sub 本例中循环结束时,循环体执行的次数是多少? i = 15 执行第1次 i = 13 i = 11 执行第2次 i = 9 i = 7 执行第3次 i = 5 i = 3 执行第4次 i = 1 i = -1 结束循环 注意:在循环体中,循环变量被赋值。 1、以下是一段Visual Basic程序,它的基本结构属于( ) … For i=0 to 100 S=s+i Next i … A、顺序结构 B、选择结构 C、循环结构 D、树型结构 小试身手: FOR—Next 循环 3、在VB中有以下程序段,语句Print "VB"的执行次数是 ( ) For i=1 to 2 Step 0.1 Print "VB" Next i A、0 B、1 C、2 D、10 2、在VB程序中有以下程序段,语句Print "VB"的执行次数是( ) For i=1 To 3 Step 2 Print "VB" Next i A、1 B、2 C、3 D、4 B C D FOR—Next 循环 4、下列程序段中,循环体执行的次数是( ), For i = 2 To 8 Step 2 i = i + i Next i A、2 B、3 C、4 D、5 5、在上题中,循环结束时,i的值是( ) 。 A、8 B、10 C、14 D、12 小试身手: A C FOR—Next 循环 课堂小结: 1、本节课主要学习了 FOR—Next 循环的基本语法,并使用该循环结构编写简单的程序,解决具体问题。 2、探讨了相关的难点问题:循环结束时,循环变量的值;循环体执行的次数等。 3、FOR—Next 循环的应用比较广泛,最简单的例子就是累加器的作用(1至10的和) ,更直观的例子是把某件事重复指定的次数(输出图形) ,它还可以用于穷举法(百钱买百鸡) 。所有这些使用循环结构来完成,非常简洁、方便。 下节课,我们将对输出图形问题、穷举类问题作更加深入地探讨。 FOR—Next 循环 课后探究:1、编程计算①S=1–1/2+1/3-1/4+1/5-1/6+…+1/99 -1/100 ②S=1! + 2! + 3! + 4! +……+ 10! ③S=1*2+2*3+3*4+……+n*(n+1) ,其中n=100。 2、一只猴子摘了一堆桃子,它每天吃当天桃子的一半,每次忍不住多吃了一个。这样到第十天时只有一个桃子可以吃了,编程计算猴子最初共有多少个桃子。 Private Sub Form_Click() Dim i As Integer '定义天数变量 Dim s As Integer '定义s为桃子总数结果由窗体输出 s =( ) For i = 1 To ( ) s = ( ) Next ( ) Print "s="; s End Sub 3、课本 P39 实践(3) FOR—Next 循环 循环的嵌套: 在一个循环体内又完整地包含另一个循环,称为循环的嵌套。 每重循环的循环变量名必须使用不同的变量名,而且不可以书写交叉的For循环语句。 从内向外, Next 总是与他最接近的For相匹配。 思考:程序是如何控制换行的? Private Sub Form_Click() For i=1 To 3 For j=3 To 1 Step -1 Print “VB”; Next j print Next i End Sub 在以下程序段中,语句Print “VB”的执行次数是多少? FOR—Next 循环 循环的嵌套应用:打印图形 实践:输出图形的程序代码。 Private Sub Form_Click() For i = 1 To 7 Print Tab(10 - i); For j = 1 To 2 * i - 1 Print "*"; Next j Next i End Sub 控制行数 每行个数 FOR—Next 循环 循环的嵌套应用:打印图形 Private Sub Form_Click() For i = 1 To 7 Print Tab(10 - i); For j = 1 To 2 * i - 1 Print "*"; Next j Next i End Sub 控制行数 每行个数 思考:程序是如何控制换行的? 展开更多...... 收起↑ 资源预览