Fortran-do-loop

提供:Dev Guides
移動先:案内検索

Fortran-Doループコンストラクト

do loop構文を使用すると、特定の条件が真である間に、1つまたは一連のステートメントを繰り返し実行できます。

構文

doループの一般的な形式は次のとおりです-

do var = start, stop [,step]
   ! statement(s)
   …
end do

どこで、

  • ループ変数varは整数でなければなりません
  • startは初期値です
  • ストップは最終値です *stepは増分です。これを省略すると、変数varは1ずつ増加します

例えば

! compute factorials
do n = 1, 10
   nfact = nfact* n
   ! printing the value of n and its factorial
   print*,  n, " ", nfact
end do

流れ図

これはdoループ構造の制御の流れです-

  • 最初のステップが最初に実行され、一度だけ実行されます。 このステップにより、ループ制御変数を宣言および初期化できます。 この場合、変数varは値startで初期化されます。
  • 次に、条件が評価されます。 真の場合、ループの本体が実行されます。 falseの場合、ループの本体は実行されず、制御フローはループの直後の次のステートメントにジャンプします。 この場合、条件は、変数varが最終値stopに到達することです。
  • ループの本体が実行されると、制御のフローはインクリメントステートメントにジャンプして戻ります。 このステートメントにより、ループ制御変数varを更新できます。
  • 条件が再び評価されます。 真の場合、ループが実行され、プロセスが繰り返されます(ループの本体、ステップのインクリメント、条件の再設定)。 条件が偽になると、ループは終了します。

Do Loop

例1

この例では、11〜20の数字を出力します-

program printNum
implicit none

   ! define variables
   integer :: n

   do n = 11, 20
      ! printing the value of n
      print*,  n
   end do

end program printNum

上記のコードをコンパイルして実行すると、次の結果が生成されます-

11
12
13
14
15
16
17
18
19
20

例2

このプログラムは、1から10までの数字の階乗を計算します-

program factorial
implicit none

   ! define variables
   integer :: nfact = 1
   integer :: n

   ! compute factorials
   do n = 1, 10
      nfact = nfact * n
      ! print values
      print*,  n, " ", nfact
   end do

end program factorial

上記のコードをコンパイルして実行すると、次の結果が生成されます-

1             1
2             2
3             6
4            24
5           120
6           720
7          5040
8         40320
9        362880
10       3628800