第5章循环结构的实现 §1用goto语句实现循坯 §2do循环 §3当型循环的实现 §4直到型循环的实现 §5本章小结 2021/2/24
1 2021/2/24 第5章 循环结构的实现 §1 用go to语句实现循环 §2 do循环 §3 当型循环的实现 §4 直到型循环的实现 §5 本章小结
2 引言 ◆顺序结构◆分支选择结构◆循环结构 语句1 匚语句N F 语句2 语句M 语句N 本章的主要内容 2021/2/24
2 2021/2/24 ◆顺序结构 ◆分支选择结构 e T F 语句1 语句2 语句N ◆循环结构 语句N 语句M 本章的主要内容 ------引 言------
3 【引例】计算k=12+22+.+102 k=0 i=0 …""""n 5ii+1 kEk+i*i 循环体 if(l. lt10 go to 5 write " *)k end ◆两个概念 循环:某段程序的连续重复执行过程。 循环体:被重复执行的那段程序。 2021/2/24
3 2021/2/24 【引例】计算k = 1 2+22+…+102 k=0 i=0 5 i=i+1 k=k+i*i if(i.lt.10) go to 5 write(*,*) k end 循环体 ◆两个概念 循 环:某段程序的连续重复执行过程。 循环体:被重复执行的那段程序
§1用goto语句实现循环p99-100)4 goto语句的一般形式为: goto 功能:当执行到该语句时,程序流程转到语句 标号所对应的语句继续执行。 例如:100read(*,4) no score write(", " )no, score go to 100 像此例这样的无限循环,它的实用性并不强 在编程中,goto语句常与逻辑语句相结合,以构 成有限循环。 §1用goto语句实现循环 2021/2/24
4 2021/2/24 §1 用go to语句实现循环(p99-100) go to语句的一般形式为: go to 功能:当执行到该语句时,程序流程转到语句 标号所对应的语句继续执行。 例如: 像此例这样的无限循环,它的实用性并不强。 在编程中,go to语句常与逻辑if语句相结合,以构 成有限循环。 100 read(* , *)no, score write(* , *)no, score go to 100 §1 用go to语句实现循环
5 例如: n=1 100 read(, " )no, score write(, )no, score n=n+1 if(n le. 30) go to 100 本例功能:依次输入并输出30个学生的学号及 成绩。 些例是一个直到型循环的例子。即先执行、后 判断),“直到”所给条件满足为止。 对循环次数固定的循环,采用DO循环最方便。 §1用goto语句实现循环 2021/2/24
5 2021/2/24 例如: 本例功能:依次输入并输出30个学生的学号及 成绩。 此例是一个直到型循环的例子。即先执行、后 判断),“直到”所给条件满足为止。 对循环次数固定的循环,采用DO循环最方便。 2021/2/24 n=1 100 read(* , *)no, score write(* , *)no, score n=n+1 if(n.le.30) go to 100 §1 用go to语句实现循环
§2do循环(P100-112) 6 【引例】依次输入并输出30个学生的学号及成绩。 I 1=n do100,n=1,30,1 F n≤30? read (, " )no,score 100 write(")no, score 输入no, score end 输出no, score 直观的执行过程 n+1→n §2do循环 2021/2/24
6 2021/2/24 F T §2 do循环(p100-112) 【引例】依次输入并输出30个学生的学号及成绩。 do 100, n=1, 30, 1 read(* , *)no, score 100 write(* , *)no, score end 1n n≤30? 输出no, score 输入no, score n+1n §2 do循环 直观的执行过程
do循环结构的一般形式 7 do语句标号[,]循环变量=表达式1,表达式2[,表达式3] 循环体 do语句或 语句标号 循环语句 把do语句简写为:dos[,]=e1,e2[,e3] 循环终端循环「循环循环匾循环 语句标号变量变量变量变量 初值终值步长 其中:s是循环体最后一条语句的标号,用于标识循环 体的范围。循环体最后一条语句称为循环终端语句,s为 循环终端语句标号。 §2do循环 2021/2/24
7 2021/2/24 一、do循环结构的一般形式 把do语句简写为: 其中:s是循环体最后一条语句的标号,用于标识循环 体的范围。循环体最后一条语句称为循环终端语句,s为 循环终端语句标号。 do s [ , ] v = e1 , e2 [ , e3] 循环终端 语句标号 do 语句标号 [ , ] 循环变量=表达式1, 表达式2 [ , 表达式3] 语句标号 循 环 体 do语句或 循环语句 §2 do循环 循环 变量 初值 循环 变量 终值 循环 变量 步长 循环 变量
dos[,]V=e1,e2[,e3] 8 do语句的有关说明: ①e3可有可无,不写时,意味着e3=1,即步长为。 ②循环变量v和e1、e2、e3可以是整型、实型、双糈 型 如:do10,t=5.0,250,15 25.0-5.0+1.5 r=int( )xn215 1.5 1)=int(14.3)=14 自循环次数的计算公式为:r=im(92-1+e3 如:do10,i=1,10,2 10-1+2 11 r=int( )=int()=int(5)=5 2 2 §2do循环 2021/2/24
8 2021/2/24 §2 do循环 do s [ , ] v = e1 , e2 [ , e3] do语句的有关说明: ①e3可有可无,不写时,意味着e3=1,即步长为1。 ②循环变量v和e1、e2、e3可以是整型、实型、双精度 型。 如:do 10, t=5.0, 25.0, 1.5 ③循环次数r的计算公式为: ) 3 2 1 3 int( e e e e r − + = 如:do 10, i=1, 10, 2 ) int(5) 5 2 11 ) int( 2 10 1 2 int( = = = − + r = ) int(14.3) 14 1.5 21.5 ) int( 1.5 25.0 5.0 1.5 int( = = = − + r =
9 ④e、e2、e3的值可以为正或负;e1、e2可以为零, 但步长e3不能为零若为零则是死循环)。 如:do10,t=50,-5.0,-1.5 5,0-5.0-1.5 11.5 r=int( )=int()=int(767)=7 1.5 15 ◆若计算的循环次数r<0,按r0处理,即循环一次也 不执行。 步长e3为正数和负数,循环的判断条件是不同的。 如 do10,i=1,10.2 do10,=10,1,-2 10 write(", )i*i 10 write(", )i*i 2do循环 2021/2/24
9 2021/2/24 §2 do循环 ④e1、e2、e3的值可以为正或负;e1、e2可以为零, 但步长e3不能为零(若为零则是死循环)。 ❖ 若计算的循环次数r<0,按r=0处理,即循环一次也 不执行。 ❖ 步长e3为正数和负数,循环的判断条件是不同的。 如: 如:do 10, t=5.0, -5.0, -1.5 ) int(7.67) 7 1.5 11.5 ) int( 1.5 5.0 5.0 1.5 int( = = − − = − − − − r = do 10, i=1, 10, 2 10 write(* , *)i*i do 10, i=10, 1, -2 10 write(* , *)i*i
do10,i=1,10,2 do10,i=10,1,-2 10 10 write(*, *)i* 10 write(*, *)i* 1→ 101 否 ≤10? 121? 物山汽 辅出内 i+2→i 12冂 当步长e3为正数时,循环执行的条件是v≤e2 当步长e3为负数时,循环执行的条件是v≥e2。 §2do循环 2021/2/24
10 2021/2/24 §2 do循环 do 10, i=1, 10, 2 10 write(* , *)i*i do 10, i=10, 1, -2 10 write(* , *)i*I 否 1i 输出i*i i+2i 是 10i 输出i*i i-2i 是 否 i≤10? i≥1? 当步长e3为正数时,循环执行的条件是v ≤e2; 当步长e3为负数时,循环执行的条件是v ≥ e2