Fortran 入門

前へ   上へ   次へ

9 繰り返し(DO 文)

多くのプログラムでは繰り返しが必要とされます。 繰り返しを Fortran で行うには do 文が利用可能です。 do 文は以下のように記述します。
  do 変数=初期値,最終値[,刻み幅]
    繰り返したい処理
  end do

例)
  do i=1, 10
    print *, i
  end do

ループを途中で抜け出たい場合には例えば以下のように exit 文を利用することも可能です。

  do ...
    if (...) exit
  end do

またループの最初にもどりループを継続する場合には以下の例のように cycle 文を用います。 下記の例では cycle 文が実行された場合に処理Aは実行されずに do ループの最初に処理が移行します。

  do ...
    if (...) cycle
  処理A
  end do

無限ループは以下のように do 文のみを記述します。

  do
    繰り返したい処理
  end do

※ DO 文には文番号を用いた古い記述方法もありますが現在は推奨されていませんのでここでは説明をしません。 古い記述方法については「知識として必要な過去の Fortran」のセクションをご参照下さい。

例えば 1 から 10 までを足してその合計を出力する場合の例を以下に示します。

[ sum.f90 ] - do 文を用いた繰り返しのサンプル

program sum
  implicit none
  integer total, i
  total = 0
  do i = 1, 10
    total = total + i
  end do
  print *, total
end program sum

出力例:
 55

2 から 10 までの偶数を足す場合には、do 文を以下のように変更します。

  do i = 2, 10, 2

繰り返しは下記のようにネスト(ループの内部にループを含ませる)することが可能です。 下記の例では処理A部分は全部で 200 回(10 x 20)実行されます。

  do i=1,10
    do j=1,20
      処理A
    end do
  end do

9.1 ★ 練習課題:平均点を求める

5 人の生徒のテスト点数を入力し、その平均を求めるプログラムを作成して下さい。

処理手順例

  1. 変数を宣言する
     例)
     real total, score
     integer i ! do ループ用
  2. 合計値を初期化(ゼロを代入)する
  3. 以下の3つの処理を 5 回繰り返す(do 文)
     例)
     do i = 1, 5
  4. 点数を入力してほしい旨を画面に出力する(print 文)
  5. 点数をキーボードから入力する(read 文)
  6. 合計値に入力された点数を足しあわせる
     例)
     total = total + score
  7. 平均点を計算して画面に出力する(print 文)
     例)
     print *, total / 5
実行例:
 Enter score( 1 ):
78
 Enter score( 2 ):
84
 Enter score( 3 ):
95
 Enter score( 4 ):
58
 Enter score( 5 ):
65
 Average:  76.0000000
[ kadai-heikin.f90 ] - 平均点を求めるプログラム例


前へ   上へ   次へ
大学生協限定キャンペーン情報
ご案内
関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2024
Privacy Policy  /  Trademarks