循环
目录
DO 循环
DO 循环和 C/C++ 语言中的 for 循环是相近的
Fortran
do counter=2, 3, 2
statement
end do
代码解释:与 do
同一行中的 counter
为循环的内层变量,第二个数字代表边界条件,第三个数字代表步长。对应的 C/C++ 语言代码如下:
cpp
for (counter = 2; counter >= 3; counter += 2) {
statement
}
Fortran 会根据 step 的正负来判断循环的方向——step 为正时,循环方向为从小到大,边界条件为上界;step 为负时,循环方向为从大到小,边界条件为下界。同时,不允许 step 为 0,不写 step 时,默认为 +1
。循环体中不能有修改循环计数器的值。在循环体中修改边界条件时,新的边界条件不会生效,原因在于在运行时,边界条件只会被计算一次,即读到内存之后就以数的类型存在,而非变量的形式存在。
Fortran
do counter=2, 3, -2
loop statement
end do
此时对应的 C/C++ 语言代码如下
cpp
for (counter = 2; counter <= 3; counter -= 2) {
statement
}
当
do
后仅有一个数字时,表示标签,而非循环的边界条件
Fortran
100 counter=2, 3, 2
do 100
statement
end do
DO WHILE 循环
DO WHILE 循环和 C/C++ 语言中的 while 循环是相近的
Fortran
do while (logical expression)
loop statement
end do
当逻辑判断结果为 .true.
时,循环继续,当逻辑判断结果为 .false.
时,循环结束。此时,可以通过控制循环来实现无限循环:
Fortran
do while (.true.)
loop statement
end do
当然,可以直接使用 do
循环来实现无限循环:
Fortran
do
loop statement
end do
循环相关命令
CYCLE 命令
CYCLE 命令用于跳过当前循环的剩余部分,继续执行下一次循环,与 C/C++ 语言中的 continue 语句相似,通常与逻辑判断连用
Fortran
do counter=2, 3, 2
loop statement1
if (counter == 2) cycle
loop statement2
end do
在此例中,当 counter == 2
时,会跳过 loop statement2
,继续执行下一次循环,但 loop statement1
仍然会被执行。
EXIT 命令
EXIT 命令用于退出当前当层循环,与 C/C++ 语言中的 break 语句相似,通常与逻辑判断连用
Fortran
do counter=2, 3, 2
loop statement1
if (counter == 2) exit
loop statement2
end do
在此例中,当 counter == 2
时,会退出当前循环,但 loop statement1
仍然会被执行。