(精品)循环结构程序设计
For J = 1 To 5
For K = 1 To J
Print "*"; Next Print Next
* ** *** ****
*****
For J = 1 To 5
For K = 1 To 5 Print "*";
Next
序比较繁琐,
Endif
我们可以利
Z=val(InputBox(“请输入第三个成绩:”,“”,0)) If Z>=60 then
用循环结构
Label1.caption=“第三个成绩及格”
来完成!
Else
Label1.caption=“第三个成绩不及格”
Endif
循环控制结构
循环控制结构又称重复结构
对一个程序段连续并重复执行的结构称为循环控制结构, 被重复执行的程序段称为“循环体”
DO WHILE <条件1> …
FOR …… …
DO WHILE <条件2> …
DO WHILE <条件3> …… LOOP … LOOP
…
LOOP
FOR …… …
FOR …… …… NEXT … NEXT … NEXT
循环嵌套举例一 分析:
阅读如下程序,分析执行结果 有几层循环?
每一层循环做什么?
循环最少执行0次 循环最少执行1次
While循环结构
语法格式: while 条件 循环体
Wend
条件
N
Y 命令序列
下一语句
说明:
1. 判断条件: 2. 当条件成立时,做循环体,遇到Wend语句返回
While语句继续判断条件; 3. 若条件不成立,则执行Wend语句的下一条语句
While循环结构
Private Sub Form_Load() Dim x As Single, sum As Single sum = 0
三个成绩,分别
Else Label1.caption=“第一个成绩不及格”
判断是否及格
Endif
可见:有重
Y=val(InputBox(“请输入第二个成绩:”,“”,0)) If Y>=60 then
复出现的语
Label1.caption=“第二个成绩及格”
句时会使程
Else Label1.caption=“第二个成绩不及格”
Exit Do
End If
m=n
n=p
Loop Until False
Text3.Text = n
End Sub
前测型与后测型的区别
条件
N
Y 命令序列
下一语句
命令序列
N 条件 Y
下一语句
While 条件成立时执行循环体 Until 条件成立时退出循环
前测型 后测型
先判断条件,再决定是否执行循环体
先无条件执行循环体,再判断条件,从 而决定是否继续执行循环体
Print "*"; Next Print Next
For J = 1 To 4 Print Space(5 - J); For K = 1 To 5
Print "*"; Next Print Next
***** ***** ***** *****
循环嵌套举例五
***** ***** ***** ***** *****
FOR J=1 TO 3 FOR K=1 TO 5 PRINT K; NEXT PRINT NEXT
1 12 123 1234 12345
循环嵌套举例三
打印一个5×5的正方形
分析: 有几层循环? 每一层循环做什么? 循环的开始与结束的条件是什么? 什么时候打印结果?
FOR J=1 TO 5 PRINT “* * * * *” NEXT
S=S+P NEXT
程序举例3
显示1000以内所有被37整除的数
Private Sub Command1_Click( )
Dim a As String
a = ""
For n = 1 To 1000
If n Mod 37 = 0 Then
a = a & Str(n) & vbCrLf
End If Next Text1.Text = a End Sub
程序举例1
Private Sub Command1_Click()
Dim n As Integer, s As Long
CurrentY = Label1.Height + 200
n=1
s=1 Do While s <= 300000
n=n+1 s=s*n Print Tab(5); n, s Loop
学生的学期成绩,如求平均分、不及格人数等
循环语句 循环出口语句(Exit)
多重循环 列表框与组合框
程序举例
For...Next Do...Loop
退出
循环控制结构分析
XIf=Xv>al=(In6p0utthBeonx(“请输入第一个成绩:”,“”,0)根) 据用户输入的
Label1.caption=“第一个成绩及格”
前测型语法格式:
Do [{while | until}<条件>] [<语句列1>] [Exit do]
Loop
条件
N
Y 命令序列
下一语句
说明: 1. 使用WUnhtiille关关键键字字时时,,判判断断条条件件:: 2. 若成不立成时立,时做,循做环循体环,体遇,到遇到LoLoopo语p句语返句回返D回oD语o句语句继继续续判判断断条条件件; 3. 若条件不成成立立,,则则执执行行LoLoopo语p语句句的的下下一一条条语语句句;; 4. Exit do用来跳出本层循环
Next n
程序举例2
求累加和1+2+3…+100
s=0 For n=1 To 100 Step 1
s=s+n Next n
在程序中s、n起什么作用? 如何计算2+4+6+…+100? 1×2×…×10? 1+1/2+…+1/10? 1+1/2+…+9/10? 1-2+3-4+…-98+99-100? 1!+2!+3!+…+9!+10!?
步长型循环语句举例
计算 S=1+2+3+……+100的和
S=0 FOR I=1 TO 100 STEP 1
S=S+I NE求X1T00以内的奇数之和
S=0 FOR I=100 TO 1 STEP -1
S=S+I NEXT
S=0 FOR P=1 TO 100 STEP 2
S=S+P NEXT
S=0 FOR P=100 TO 1 STEP 2
For…Next语句 (明确循环次数时使用)
语法格式: For <循环变量>=<初值> To <终值> [Step <步长>] [<语句列1>]
[Exit For] [<语句列2> ] Next [<循环变量>]
K=初值
K超过终值
Y
N 命令序列
K=K+步长
下一语句
步长型循环语句
执行过程: ⑴先将初值赋值给循环变量
FOR J=1 TO 3
循环的开始与结束的条件是什么?
FOR K=1 TO 3 打印的最终结果是什么?
1
PRINT K NEXT NEXT
2
12312312 3
123
3 1 2
123
3
123
1
2
3
循环嵌套举例二
12345 12345 12345
FOR J=1 TO 5 FOR K=1 TO J PRINT K; NEXT PRINT NEXT
•EXITFOR用来强制退出循环,一般与条件语句配合使用
程序举例1
在窗体上打印五行“您好”
For n=1 To 5 Step 1 print “您好”
Next n
For n=5 To 1 Step -1 print “您好”
Next n
For n=1 To 5 Step 1 print tab(n);“您好”
命令序列
N 条件 Y
下一语句
使用While关键字说明:
1. 先无条件地做循环体:
2. 遇到Loop语句,判断条件:若条件成立时,做循环体,返回Do 语句继续做循环体;
3. 若条件不成立,则执行Loop语句的下一条语句; 4. Exit do用来跳出本层循环
求两个数的最大公约数
Private Sub Command1_Click()
计算机具有速度快、精度高的特 点,特别适于进行重复性的工作, 重复次数越多越能显示它的威力。 所以,使用计算机时,应尽量把 问题归纳为简单而有规则的重复 运算和操作,以充分发挥计算机 的特长。
本章主要内容
采用循环程序可以解决一些按一定规则重复执行 的问题。例如,统计一个班几十名学生,甚至全校几千名
Do Until s >= 300000 n=n+1 s=s*n Print n, s
Loop
Label2.Caption = "n=" & Str(n - 1)
End Sub
程序举例2
s=0
求累加和1+2+3…+100
For n=1 To 100 Step 1 s=s+n