2

我的作业任务是将 C# 中的循环转换为 Fortran 95。

outerLoop:
  for(row = 0; row < numRows; rows++){
    for(col = 0; col < numCols; col++){
      if(mat[row][col] == 0)
        continue outerLoop;
      sum += mat[row][col];
    }
  }

正如你们中的一些人所看到的,这看起来类似于 Java 和 Perl 中使用的 exit 语句标签规范,据我了解,它用于中断具有嵌套循环或“ if ”语句的循环,而不仅仅是单个循环/陈述。我对 Java 中的这个特性还是新手,所以我不确定它是否存在于其他任何地方,特别是在 C# 和 Fortran 95 中。

我在谷歌上环顾四周,但我没有找到任何适合它的东西。我在制定要在 Google 上使用的搜索词时遇到了麻烦,因此这也是其中的一个因素。

请注意:我不是在寻找讲义答案;我只是在寻找自己在哪里找到答案。

感谢您抽出时间阅读这篇文章。

4

2 回答 2

3

Fortran 95 中循环控制结构的示例,请参阅我在上一个 Fortran 问题中的示例代码,其中包含“循环”和“退出”的示例用法:Reading comment lines correct in an input file using Fortran 90 , .

于 2012-04-21T21:04:55.713 回答
1

我相信break xC# 不支持这样的功能。您需要使用标志手动跳出嵌套循环。

bool stop = false;
for (row = 0; row < numRows; rows++)
{
    for (col = 0; col < numCols; col++)
    {
        if (mat[row][col] == 0)
        {
            stop = true;
            break;
        }

        sum += mat[row][col];
    }

    if (stop)
        break;
}

更简单的替代方案包括goto声明(被广泛反对);并将你的循环封装在一个专用的方法中,在这种情况下,你可以return在你想停止迭代的时候。

于 2012-04-21T21:06:24.913 回答