0

坏消息大家,

我最近开始学习 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

我有一些用 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
}

或者:

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

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

4

1 回答 1

4

continueFortran的声明什么也没做。它只是作为跳转的参考。在您的 Fortran 代码中,程序会跳过DO SOME MORE STUFF HEREif some conditionis true。因此,您的第二个 C 版本是正确的。

于 2013-02-06T22:43:49.417 回答