返回介绍

3.2.1 无循环变量的 DO 构造

发布于 2025-03-08 16:28:32 字数 1878 浏览 0 评论 0 收藏 0

a) 一般形式

这种 DO 构造形式非常简单,一般形式为:

[构造名:] DO

END DO

不带循环控制变量的 DO 构造控制机制为:进入 DO 构造体后,从 DO 语句下面第一句执行起顺次执行到 END DO 前的最后一句,再返上来从 DO 语句下面第一句执行起,重复执行整个 DO 块。如此反复执行 DO 块,其间如遇到 EXIT 语句,就停止执行 DO 块,退出循环,转向执行 END DO 下面的语句。对于不带控制变量的 DO 构造,DO 块中必须有 EXIT 语句,使它停止循环,否则循环将无休无止地一直进行下去,形成死循环。

DO 构造也可在自身中再嵌 DO 构造,例如:

FIRST: DO

块 1 的第一部分

SECOND: DO

块 2

END DO SECOND

块 1 的第二部分

END DO FIRST

b) EXIT 语句

许多实际问题中无法预先给定循环次数,而是只给出一个条件,满足此条件时就继续执行循环体,否则退出循环,故有条件循环时循环次数不是固定的。除了可以用 GOTO 语句跳出循环外(非结构化方法),F90 还给出了其它用于条件循环方式的语句。

EXIT 语句的作用是停止循环,使控制退出循环结构,因此又称出口语句。它的一般形式是:EXIT [DO 构造名]。执行 EXIT 语句,其功能是导致循环终止。如果语句引用了 DO 构造名,则它属于该构造,否则属于它所出现的最内层 DO 构造。对于多层嵌套的 DO 构造,尤为需要指明是从哪一个构造名的 DO 构造中退出。如当 EXIT 指明从第三层结构退出,则第三层与第三层内各层嵌套的 DO 构造都将被停止执行。

单独使用将导致无条件地终止循环,没有实用意义。为了控制 DO 结构在满足某种条件时停止循环,通常将 EXIT 语句与 IF 语句结合使用,即在 DO 构造内使用:IF(逻辑表达式) EXIT。当逻辑表达式为真时,EXIT 语句被执行,循环终止,否则循环将继续进行。

例:do;if((input.eq.'n').or.(input.eq.'y')) exit

write(*,'(a)') 'Enter y or n:';read(*,'(a)') input

end do

例:一个猜数游戏。用随机数产生器产生 1-10 之间的一个整数,你猜它,如果猜得太大或太小都会提示,猜对了结束。 [e_321_01.f90]

例:求级数的前 n 项和,但当某项绝对值≤10-5时,虽未满 n 项,也因满足精度而不再加入下一项。 [e_321_02.f90]

a) CYCLE 语句

CYCLE 语句的一般形式为:CYCLE [DO 构造名]。CYCLE 语句的功能是在循环中跳过它下面那部分的 DO 块,重新返回到块的第一个语句开始执行。运用 CYCLE 语句,可以在执行循环中某一次迭代时不执行下面的部分语句,使 DO 结构更为灵活。

CYCLE 语句与 EXIT 语句一样属于特定的 DO 构造。如果语句引用了 DO 构造名,则它属于该构造,否则属于它所出现的最内层 DO 构造。 [e_321_03.f90]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文