⑤若循环变量v的类型与e1、e2、e3的类型不-致,则 首先将e1、e2、e3的类型转化为循环变量的类型,然后 再进行其它的操作。 如:do10,ⅰ=1.5,3.6,12 ↓取整 do10,i=1,3,1 ◆为避免错误,应使循环变量v的类型与e1、e2、e3 的类型一致。 do10,i=1.0,3.0,05 由于计算机中实数的近似性,应尽量避免使用实型 的循环变量,最好采用整型循环变量。 二、do循环的执行过程(与理解有差别) §2do循环 2021/2/24
11 2021/2/24 §2 do循环 ⑤若循环变量v的类型与e1、e2、e3的类型不一致,则 首先将e1、e2、e3的类型转化为循环变量的类型,然后 再进行其它的操作。 如: ❖ 为避免错误,应使循环变量v的类型与e1、e2、e3 的类型一致。 ❖ 由于计算机中实数的近似性,应尽量避免使用实型 的循环变量,最好采用整型循环变量。 do 10, i=1.5, 3.6, 1.2 do 10, i=1, 3, 1 取整 二、do循环的执行过程(与理解有差别) do 10, i=1.0, 3.0, 0.5
12 e1→V e1→V Fortran中do 否循环的真实执 F算循环 行过程 次数r 执 循环体 p02 v+e3→V 可以理解为 执行 的执行过程 循环体 v+e3→v P是循环执行的条件 当e3>0,P为v≤e2 r1=r] ◆当e3<0,P为v2e2 §2do循环 2021/2/24
12 2021/2/24 否 §2 do循环 r-1r 是 v+e3v e1v 计算循环 次数r r>0? 执行 循环体 否 P? 是 v+e3v e1v 执行 循环体 P是循环执行的条件 当e3>0,P为v≤e2 当e3<0,P为v≥e2 Fortran中do 循环的真实执 行过程 可以理解为 的执行过程
、循环终端语句 dos, v=,. e3 是循环体的最后一条语 句。 并非所有的语句都可以 循环体 做循环终端语句。 s ①在 Fortran可执行语句中,除goto、块i结构中的if 语句、else语句、 else if语句、end谞语句、end、stop、 return之外的语句可以作为循环终端语句 可执行语句:程序在运行时可以产生某些操作,如赋值 操作、输出操作。(定义见p48,清单见p327附录1) ②所有的非执行语句都不能作为循环终端语句。 非执行语句:只在编译时作出处理,运行时不产生操作 如变量类型定义语句。 §2do循环 2021/2/24
13 2021/2/24 do s , v = e1 , e2 , e3 s 循 环 体 2021/2/24 §2 do循环 三、循环终端语句 是循环体的最后一条语 句。 并非所有的语句都可以 做循环终端语句。 ①在Fortran可执行语句中,除go to、块if结构中的if 语句、else语句、else if语句、end if语句、end、stop、 return之外的语句可以作为循环终端语句。 可执行语句:程序在运行时可以产生某些操作,如赋值 操作、输出操作。(定义见p48,清单见p327附录1) ②所有的非执行语句都不能作为循环终端语句。 非执行语句:只在编译时作出处理,运行时不产生操作, 如变量类型定义语句
14 由于上述限制,在某些情况下循环终止语句无法确 定。如,输入10个实数,分别计算其中正数、负数个数和 各自的平均值: nz=0 nf=nf+1 nf=0 pf=pf+ pz=0.0 100 end if f=0.0 pz=pz/nz do100,n=1,10 pf=pf/nf read(", *)x write(*, *)nz, pz, nf, pf if(x gt.0.0)then end nz=nz+1 pz=pz+X else 错误 2021/2/24
14 由于上述限制,在某些情况下循环终止语句无法确 定。如,输入10个实数,分别计算其中正数、负数个数和 各自的平均值: nz=0 nf=0 pz=0.0 pf=0.0 do 100, n=1, 10 read(* , *) x if(x.gt.0.0) then nz=nz+1 pz=pz+x else nf=nf+1 pf=pf+x 100 end if pz=pz/nz pf=pf/nf write(* , *)nz,pz,nf,pf end 错误 2021/2/24
为了避免使用错误并使d循环规范化,常采用5 continue语句称为继续语句)作为循环终端语句, 相应的do循环称为规范化do循环一般形式为: dos, v=ele2, e3 continue语句的 循环体 功能:不执行任何 s continue 操作,仅使程序流 如 程继续执行。 do10,=1,10,2 write(, )i*i 10 continue 建议采用这种规范化的do循环形式。 §2do循环 2021/2/24
15 2021/2/24 为了避免使用错误并使do循环规范化,常采用 continue语句(称为继续语句)作为循环终端语句, 相应的do循环(称为规范化do循环)一般形式为: 如: 建议采用这种规范化的do循环形式。 do s , v = e1 , e2 , e3 s continue 循 环 体 2021/2/24 §2 do循环 do 10, i=1, 10, 2 write(* , *)i*i 10 continue continue语句的 功能:不执行任何 操作,仅使程序流 程继续执行