【Fortran】循环结构
1) DO 循环
循环体缩进不是硬性要求,是为了提高可读性。
DO循环主要包括两种形式:
- 当循环:不明确循环次数;
- 迭代循环 :明确循环次数。
① 当循环
- 常用格式:
只有当[name:] DO ... IF(logical_expression) EXIT ... END DO [name]
logical_expression
为正时,才会结束循环。可以有多条EXIT
语句,但尽量只含有一条,逻辑会更加清晰。 不常用格式:
当DO WHILE(logical_expression) ... ... ... END DO
logical_expression
为正时,一直循环。但这是常用格式的特殊形式,不常使用,因为常用格式也能够实现这种功能。
② 迭代循环
[name:] DO index=istart,iend,iner ! 分别代表初值、结束值、步长值(可正可负)
...
...
...
END DO [name]
istart
相当于是计数器,是整型值,尽量不要在内部进行修改,否则容易出错;- 当步长
iner
不设置时,默认值为1; - 如果需要计算或统计循环过程中某个值的变化情况,可另设变量,而不是用计数器
istart
;
③ 嵌套
循环一层套一层,不多说。
2) CYCLE 和 EXIT
用于当循环和迭代循环,如:
[name:] DO
...
IF(logical_expression) CYCLE ! 当IF满足条件时,执行CYCLE,当前循环的执行将被终止,返回至循环的顶部,但变量的数值没有被重置
...
END DO [name]
[name:] DO
...
IF(logical_expression) EXIT ! 当IF满足条件时,执行EXIT,当前循环的执行将被终止,跳出循环,但变量的数值没有被重置
...
END DO [name]
同理,最好给循环命名,然后在CYCLE
和EXIT
后面加上相应预想操作的循环名,就可以跳过某一次循环或终止某一个循环,这在嵌套循环中特别有用。