如何使用这个If语句?

时间:2012-07-12 20:14:45

标签: if-statement fortran goto

我正在努力教自己fortran所以我可以解开一个旧程序并将其重新用于我们自己的用途。我无法弄清楚这句话的作用:

if(s - fm) 198, 198, 197

s - fm不是一个可以是真或假的条件,对吗?

当它将控制传递给标记为198的行时,它是否继续到程序结束?怎么知道什么时候再回来执行198然后再执行197?

2 个答案:

答案 0 :(得分:8)

这是IF的“古老”形式:

IF (''arithmeticExpression'') ''firstLineNumber'', ''secondLineNumber'', ''thirdLineNumber''

在第二种形式中,评估算术表达式。如果表达式求值为负数,则继续执行第一个行号。如果表达式的计算结果为零,则继续执行第二个行号。否则,继续执行第三行编号。

根据表达的符号,这是一个“三向转到”。

在更传统的C语言中,它可以是

/* IF(a) label1, label2, label3 */

if(a > 0)
{
   goto label3;
} else
if(a < 0)
{
   goto label1;
} else
{
   // a == 0
   goto label2;
}

您的案例包含两个标签198,其作用类似于

if(s <= fm) { goto lbl198; } else { goto lbl197; }

参考:wikibooks

答案 1 :(得分:3)