文档介绍:第五章循环结构的实现
本章重点:
。
。
。
11/10/2017
1
第五章循环结构的实现
〖用GOTO语句实现循环〗
〖用DO语句实现循环〗
〖当型循环的实现〗
〖直到型循环的实现〗
〖循环形式的关系和比较〗
11/10/2017
2
№ 用GOTO语句实现循环
GOTO的形式:
GOTO〈标号〉
例: 读入30个学生学号和成绩,并打印出来
N=1
100 READ(*,*)NUM,GRADE
WRITE(*,*)NUM,GRADE
N=N+1
IF() GO TO 100
END
说明:由于GOTO语句破坏了语句顺序执行的正常状况,
不符合结构化原则,所以一般不提倡使用它。
11/10/2017
3
GOTO语句举例
键盘输入10个数,输出最大值
I=0
READ(*,*) A
MAX=A
10 READ(*,*) B
IF (MAX .LT. B)THEN
MAX=B
ENDIF
IF(I .LE. 10) THEN
I=I+1
GOTO 10
ENDIF
WRITE(*,*) MAX
END
I=0
READ (*,*) A
MAX<B
N
Y
空操作
MAX=B
I=I+1
直到I≥10
输出MAX
MAX=A
READ (*,*) B
BACK
11/10/2017
4
№ 用DO语句实现循环
DO语句的一般形式为:
DO 标号循环变量=表达式1,表达式2,[表达式3]
或写成:DO S [,] V= e1, e2, [e3]
说明:
,在写该语句时,若[表达式3]不写,则循环变量的增量为1(步长值);
循环变量
循环
变量
初值
循环
变量
终值
循环
变量
增量(步长)
循环
终端语句标号
11/10/2017
5
№ DO语句使用说明
、终值和步长可以分别是常量、变量或表达式;
、终值和步长计算出来:
r=int((e2-e1+e3)/e3);
4. e3不应为0,因为在求循环次数r时,e3为分母,r会趋
向无穷大;
5. e1,e2,e3的值可以为正或负,e1,e2的值可以为0;
<0时,按r=0处理,即一次也不执行循环;
7. 如果循环控制变量的类型和e1,e2,e3的类型不一致时,则按赋值规则处理,即将e1,e2,e3的类型化成循环控制变量的类型,然后进行处理。
、终值、步长可以是整形、实型或双精度型。
11/10/2017
6
№ 循环的执行过程
,e2,e3表达式的值,并将他们转换成循环控制变量的类型;
,它相当于执行一个赋值语句:v=e1;
;
,若r≤0则跳过循环体执行下一行语句,r>0执行循环体;
,循环变量v增值,v=v+e3;
6. 循环次数r减1,r=r-1,计算出还应执行的循环次数
,重复执行4,5,6,7。
※注※循环体不包括循环语句,DO语句只执行一次而不是执行r次。
计算e1,e2,e3的值
V=e1
执行循环体
r>0
循环变量增值
V=v+e3
r=r-1
执行终端语句
下面的语句
计算应循环的次数r
N
11/10/2017
7
1、循环终端语句可为一般的可执行语句;
2、为了使循环起止范围清晰,通常用继续语句作为终端语句。继续语句的形式为: 标号 CONTINUE
说明:
,只是将流程转
到逻辑上的下一个语句;
,且不必记哪些语句不能作
终端语句。
:
DO 标号,I=初值,终值,步长
循环体
标号 CONTINUE
№ 循环终端语句和继续语句
11/10/2017
8
№ DO循环的一些规定
,但不应再被赋值;
,在执行循环体期间是确定不变的;
,也可在循环内转移,但不允许从循环外转到循环体内;
“非正常出口”,执行完全部应执行的循环次数而脱离循环称“正常出口”。
11/10/2017
9
DO 循环应用举例
例1: 读入30个学生学号和成绩,并
打印出来
DO 10,N = 1, 30, 1
READ(*,*) NUM,