具有一个continue的Fortran嵌套循环

具有一个continue的Fortran嵌套循环,fortran,fortran77,Fortran,Fortran77,我正在重写一些遗留代码,遇到了以下问题: DO 4 I=1,N ... DO 4 J=1,N ... 4 CONTINUE 这两个循环似乎只有一个CONTINUE。它是否等同于此Java代码 for (int i=0; i<n; i++) { ... for (int j=0; j<n; j++) { ... } } for(inti=0;i我认为你对它的等价物是正确的 4 CONTINUE 只是循环结束点的标记。使用

我正在重写一些遗留代码,遇到了以下问题:

  DO 4 I=1,N
   ...
  DO 4 J=1,N
   ...
4 CONTINUE
这两个循环似乎只有一个
CONTINUE
。它是否等同于此Java代码

for (int i=0; i<n; i++) {
    ...
    for (int j=0; j<n; j++) {
        ...
    }
}

for(inti=0;i我认为你对它的等价物是正确的

4 CONTINUE
只是循环结束点的标记。使用两个CONTINUE语句,或者更好的是使用两个ENDDO(如果编译器支持的话)会更清楚

本页 同意,只需搜索“相同的继续”


不过有一个细节是,我认为Java代码中的循环变量开始值和结束值与Fortran代码中的不一样。

ah,我的眼睛!从大学开始就没有看过Fortran:)希望我能帮上忙,但我只是不记得这一点……答对了。行是宝贵的,因此不要将它们浪费在额外的
CONTINUE
语句中。此外,虽然两个程序中的循环开始/结束值不同,但只要不显式地使用i/j值(即仅作为数组索引),Fortran代码从[1,N]开始,Java代码从[1]开始就可以了[0,N).我觉得Fortran数组索引是从1开始的?他们是这样的。我只提到了循环变量与java代码不匹配,因为我不知道这些变量是如何使用的。@Tim的评论是对的。N个元素的数组在Fortran中使用1..N,在java中使用1..N-1。但是如果循环索引用于som除此之外,这可能是一个问题。这完全取决于它们在循环中的使用方式。@waitinformatrain-数组的下界默认为1;但是,下界和上界可以是-n、0或+n,n为整数。