2010-02-01 55 views
2

我正在分析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 

回答

4

AFAIK,CONTINUE in fortran does not nothing。

它仅在DO循环语义中用于方便。 这不是C类。

4

Th CONTINUE语句简单地标记由其数字语句编号指示的循环结束 - 它不增加任何内容。它在你的代码中肯定对flg没有影响。有一个简单的解释,它的使用here

+0

.......谢谢尼尔! – memC 2010-02-01 13:23:04

2

这是旧的Fortran,它通常使用标记为continue的语句来标记do循环。 Fortran 90和更高版本提供了“结束”语句。

0

自从2010年2月问这个问题以来,我回答了三年多了,因为我现在只看到了问题,并发现答案会更加详细和完整。事实上,逻辑变量flg应该在循环j = i + 1到N中具有flg的“最后值”,因为对于i(= 1)的每个值,由标签200指定的内部do循环应从j = i + 1到N运行,N-1,1)。条件“我的条件”必须在不使这个内部循环变得不重要的情况下发挥重要作用。