具有一个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为整数。