我的任务是将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上使用的搜索字词,因此也可以考虑这些因素。
请注意:我不是在寻找补救措施;我只是在找自己找到答案的地方。
感谢您抽出时间阅读这篇文章。
答案 0 :(得分:3)
有关Fortran 95中循环控制结构的示例,请参阅前一个Fortran问题中的示例代码,其中包含“cycle”和“exit”的示例用法:Reading comment lines correctly in an input file using Fortran 90 ,.
答案 1 :(得分:1)
我相信C#不支持这样的break x
功能。您需要使用标志手动打破嵌套循环。
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
。