这个 Fortran 代码是什么意思:
IF (J1-3) 20, 20, 21
21 J1 = J1 - 3
20 IF (J2-3) 22, 22, 23
23 J2 = J2 - 3
22 CONTINUE
我在旧项目中见过,我不知道这个带有数字(标签)的 IF 是什么意思。
这是来自 FORTRAN 77 的算术if
语句。改编自 FORTRAN 77 规范(重点是我的):
算术
IF
语句的形式为:
IF (e) s1 , s2 , s2
其中:
e
是整数、实数或双精度表达式
s1
,s2
, 和s3
是与算术语句出现在同一程序单元中的可执行语句的语句标签IF
。同一个语句标签在同一个算术语句中可能出现多次IF
。执行算术
IF
语句会导致对表达式进行评估,e
然后转移控制。由、或标识的语句接下来执行,因为 的值分别小于零、等于零或大于零。s1
s2
s3
e
对于您问题中的示例,从上面的最后一句话中,
J1-3 < 0
将执行语句 20J1-3 = 0
语句 20 也将被执行J1-3 > 0
将执行语句 21编辑:一种现代且更具可读性的编写方式是:
if (J1-3 > 0) J1 = J1 - 3
if (J2-3 > 0) J2 = J2 - 3