计算的GOTO执行失败



我遇到一个奇怪的行为在Fortran 77代码(gfortran编译器),下面这行代码运行良好(对于iprob=202跳转到标签202):

      if( iprob .eq. 202 ) goto 202
      !...some commands...
  202 continue

然而,它的对应物:

      GO TO ( 202 ), iprob
      !...some commands...
  202 continue

没有。程序只运行iprob=202。

也许有人对这个问题有什么想法?

表单

go to ( 202 ), iprob

是一个计算的go to语句。在这样的语句中,有一个标签列表(这里只有一个202)和一个选择标签的整数表达式(这里是iprob)。

标签选择是按列表中的顺序进行的。因此,要选择第一个标签,表达式的值应该是1iprob的值为202,第202个标签(如果存在)将被选中。如果整数表达式超出范围(小于1,大于列表中的标签数),则继续执行到下一行。在goto中运行

您可能正在考虑将go赋值给语句,其中标签由表达式的值决定。不过,我不会详细讨论它,因为它不再是Fortran标准的一部分。

相关内容

  • 没有找到相关文章

最新更新