STEP.02 Fortranの基礎その2-do文

01 do文の基礎

ここでは数値計算のプログラムを書くために重要となるdo文について説明します。 do文を用いると、ある処理を何度も反復させるプログラムを書くことができます。 ここでは Hello,world!! と10回表示させるプログラムを例として示します。

program main
implicit none
integer i

do i=1,10
  write(*,*)'Hello,world!!',i
end do

end

上のプログラムのように do文は do から始まり end do で終わります。 そして反復させたい処理をこの do と end do の間に書きます。
上にプログラムを実行すると Hello,world!! と10回書き出されますが、 具体的には次のように処理されています。

1. プログラムが実行されて処理が do文の先頭まで到達すると i=1 として (do i=1,10 と書かれているので) end do までに書かれた処理が行われます。
2. end do まで処理が到達すると i に1だけ足されて(i=2となって) do文の先頭に処理が戻ります。
3. 再び do から end do までの処理行い、i にさらに1を加えて先頭に戻ります。
4. 3.の操作をiが10になるまで繰り返します。(do i=1,10より)

上のサンプルプログラムをコンパイル・実行すつと Hello,world!! と10回出力されるのに加えて、 その右側に i の値が1から10まで変化して出力されるので、ループの制御変数である i の値が変化していく様子が確認できます。

次はこの do文を使って実際に計算を行ってみます。

02 自然数の和の計算-do文

do文の基本的な書き方を学んだので、次はこれを利用して計算をしてみましょう。 下に書いたサンプルプログラムは1から10までの自然数の和を計算するプログラムです。

program main
implicit none
integer i,n

n=0
do i=1,10
  n=n+i
end do
write(*,*)'sum = ',n

end

上のプログラム中の中で1点注意するところがあります。 それは n=n+1 と書かれたところです。 この文中イコール(=)は等式を意味しているのではなく代入の意味で使われています。 具体的には、はじめ n に入っていた数にiを足した数を n にしまうことを意味しています。 上のプログラムではこの文が do文で繰り返されて、 n に1から10までの数が足しこまれていき、最終的に1から10までの自然数の和が計算されます。このような和の計算は、後で数値的に積分を行うときにも重要となります。

前ページへ次ページへ