关于fortran在for循环中继续声明的问题
问题描述:
我正在分析fortran中的代码并有一个简单的问题。关于fortran在for循环中继续声明的问题
我想知道在下面的代码中100和200处的“continue”语句是什么。
是否增加i和j计数器?如果是这样,if(.not. flg)
那么条件包含flg
值,这是循环中flg的“最后一个值”j = i+1 to N
?
do 100 i = 1, N-1
flg = .false.
do 200 j = i+1, N
if("my condition") flg = .true.
200 continue
if(.not. flg) then
! do something here.
endif
100 continue
答
AFAIK,CONTINUE in fortran does not nothing。
它仅在DO循环语义中用于方便。 这不是C类。
答
这是旧的Fortran,它通常使用标记为continue的语句来标记do循环。 Fortran 90和更高版本提供了“结束”语句。
答
自从2010年2月问这个问题以来,我回答了三年多了,因为我现在只看到了问题,并发现答案会更加详细和完整。事实上,逻辑变量flg应该在循环j = i + 1到N中具有flg的“最后值”,因为对于i(= 1)的每个值,由标签200指定的内部do循环应从j = i + 1到N运行,N-1,1)。条件“我的条件”必须在不使这个内部循环变得不重要的情况下发挥重要作用。
.......谢谢尼尔! – memC 2010-02-01 13:23:04