FORTRAN 中“do-Continue”和“Go to-Continue”的混淆

tri*_*e_r 0 fortran77 do-loops

坏消息大家,

我最近开始学习 FORTRAN 来理解代码并将其翻译为 C++(我
知道代码的作用对于这个问题并不重要,但为了提供一些背景知识,
该代码使用自适应网格上的搭配方法解决了边界值问题)。
查看代码,某些“go to”语句与“do continue”相结合
,这确实让我感到困惑。

这是一个例子:

do 100 i=1, n
    C DO SOMETHING HERE
    if (some condition) go to 90
    C DO SOME MORE STUFF HERE
    90 continue
    C EVEN MORE STUFF HERE
100 continue
Run Code Online (Sandbox Code Playgroud)

我有一些 C 语言编程经验,因此我将用 C 语言编写两种解释,如下
所示,但我不确定哪一种(如果有的话!)是正确的翻译:

for(int i=1;i<=n;i++)
{
    //DO SOMETHING HERE
    if(some condition) continue;
    //DO SOME MORE STUFF HERE
    //EVEN MORE STUFF HERE
}
Run Code Online (Sandbox Code Playgroud)

或者:

for(int i=1;i<=n;i++)
{
    //DO SOMETHING HERE
    if(!some condition)
    {
        //DO SOME MORE STUFF HERE
    }
    //EVEN MORE STUFF HERE
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人可以帮助我理解语法。

Rei*_*ner 6

continueFortran 语句没有任何作用。它仅作为跳转的参考。在 Fortran 代码中,程序会跳过DO SOME MORE STUFF HEREif some conditionis true。因此,你的第二个 C 版本是正确的。