9

この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が何を意味するのかわかりません。

4

1 に答える 1

11

これは、FORTRAN 77の算術ifステートメントです。FORTRAN 77 仕様 (強調は私のもの) から適応:

算術IFステートメントの形式は次のとおりです。

IF (e) s1 , s2 , s2

  • ここで:eは整数、実数、または倍精度の式です

  • s1s2、およびs3はそれぞれ、算術ステートメントと同じプログラム単位に現れる実行ステートメントのステートメント ラベルですIF。同じ算術ステートメントに、同じステートメント ラベルが複数回出現する場合がありますIF

算術IFステートメントを実行すると、式が評価eされ、その後に制御が移ります。、 またはで識別されるステートメントは、 の値がそれぞれ 0 未満、0 に等しい、または 0 より大きいため、次に実行されます。s1s2s3e

あなたの質問の例では、上記の最後の文から、

  • J1-3 < 0ステートメント 20 が実行される場合
  • IfJ1-3 = 0文20も実行される
  • J1-3 > 0ステートメント 21 が実行される場合

編集:これを書くための現代的ではるかに読みやすい方法は次のようになります:

if (J1-3 > 0) J1 = J1 - 3
if (J2-3 > 0) J2 = J2 - 3
于 2012-06-20T17:30:12.310 に答える