我遇到一个奇怪的行为在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
)。
标签选择是按列表中的顺序进行的。因此,要选择第一个标签,表达式的值应该是1
。iprob
的值为202
,第202个标签(如果存在)将被选中。如果整数表达式超出范围(小于1,大于列表中的标签数),则继续执行到下一行。在goto中运行
您可能正在考虑将go赋值给语句,其中标签由表达式的值决定。不过,我不会详细讨论它,因为它不再是Fortran标准的一部分。