我有一个相当简单的结构:
do i = 1,x
if (condition) then
do_stuff
exit
end if
end do
如果do
- 循环变得足够大,那么exit
语句将不再是好的(我看一下它就像我看go to
语句一样)。
我正在寻找一种更清晰的方法来在适当的时候退出循环,以便更清楚看到其他人查看我的代码时发生了什么。
我想到的一件事可能是清理,这将是
lkeepgoing = .true.
iterator = 1
while (lkeepgoing) then
if (condition) then
do_stuff
lkeepgoing = .false.
end if
iterator = iterator+1
end while
虽然我认为它清除了为什么我想退出循环而不必查看整个循环,但我觉得它看起来过于复杂。
所以问题:如何退出do
- 以一种清晰,干净的方式满足条件,不使用意大利面条代码的语句?
答案 0 :(得分:3)
第一个代码段使用exit
的方式没有任何问题。像这样的小跳跃很难意大利面条代码。与你的第二个片段相比,当你遇到一定的条件时,你会在一个循环中做出有条理的早期退出,这一点要清楚得多。
请记住,exit
非常局限于可以跳转到的位置,而go to
可以用来跳到所有地方。
不要严格遵守一般规则,例如永远不要使用goto ,当然,当它们使代码变得更糟时。