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を更新できます。
- 条件が再び評価されます。 真の場合、ループが実行され、プロセスが繰り返されます(ループの本体、ステップのインクリメント、条件の再設定)。 条件が偽になると、ループは終了します。
例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