Fortran Builder Logo
Fortran Builder




大学生協
今だけ!
Fortran Builder
+NAGライブラリ
大学生協限定
キャンペーン実施中!




Fortran Consulting Logo
Fortran
コンサルティング




NAG Library Image
NAG 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回(10x20)実行されます。

  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 ] - 平均点を求めるプログラム例


ナビゲーション:前へ   上へ   次へ

Results matter. Trust NAG.
Privacy Policy | Trademarks