繰り返し(1);For文→決められた回数分繰り返し
・同じようなことを繰り返したい場合で、あらかじめ繰り返す回数が分かる場合
・1+2+3+... をコンピュータで馬鹿正直に計算させてみよう。
○繰り返し処理
- コンピュータの特徴はいくつかあるが、その一つに高速に単純な計算を(あきずに)してくれるというのがあげられる。
皆さんならば、1+1を飽きずに、ズルせずに何百回も繰り返して、しかも速く計算することができるだろうか。。。
- このような特徴を生かす、また同じような計算を何度もする場合に、プログラムを簡素化するために、制御構造として繰り返し処理がある。
- VBにおける繰り返し処理は、大きく二つ。
For文とDo文。今日はFor文について勉強しよう。
- 例えば、「1+1」の計算を百回行わせる場合、連続して1+1を百回書けば勿論それでも正解。でももっと簡単にプログラムできる。
しかも、100回ではなく1000回に修正するのも簡単。これを実現してくれるの命令(ステートメント)がFor文である。
- 繰り返し処理のことを「ループ処理」とも言う。ループ;シャトルループなどでご存知のようにグルグルと回ることである。
○For文;決められた回数分だけ繰り返す
- For文は、For-Nextという対で書かなければいけない。
(Ifに対応するEndIfのようなもの)
- For文は次のように書いて利用する。
- For カウンタ変数 = 初期値 To 終了値
繰り返し処理のブロック
Next カウンタ変数
- より具体的な利用方法を紹介しよう。
For n = 1 To 100
s = 1 + 1
Label1.Text = s
Next n
上記プログラム例は、「1+1」を計算し、変数sに代入しておく。そしてLabel1にsを表示するということを100回繰り返す例である。
高速であること、またVBの特別な理由により、本当に100回書いているようには見えないが、確実に100回書いてくれているのは事実。
一般的なコンピュータは文字やグラフィックを表示するのが実はちょっと遅いのが難点であるが、100回程度書くならばすぐに終わってしまう。
上記プログラムを少し詳しく見てみよう。
- 変数「n」はここでは「カウンタ変数」と呼ばれる。これはFor文が何回繰り返しているのかを数えるための変数である。
変数は必ずしも「n」である必要はなく、何でもよい。
交通量調査などで利用されるカウンタと思っていただければよい。
- For文の最初に「n = 1」書かれている。「1」ではなくてもよく、他の数字でも、もしくは何らかの数値が代入されている変数や式などでもよい。
この場合実際にカウンタ変数nに1が代入される。後ろの「To 100」は最初はとりあえず無視しよう。
- 次に、ForとNextの間の繰り返し処理のブロック部分、ここでは2行が順次実行される。これによって、1+1の結果の2がLabel1に表示される。
もちろんここにIf文があっても、Select文があっても、またFor文があっても全く問題はなく、100行だろうが千行だろうが、または0行だろうが正しいVBならばよい。
- 次に「Next n」に進む。この「n」はFor文で使ったカウンタ変数を書く。
- この「Next」では特に何もせず、単にForに戻れという意味である。
- よって、「For n = 1 To 100」に戻って、再度ここが実行される。
- 2回目以降に実行されるこのForは最初とは決定的に違った動きをする。
- 「n=1」は今度は無視しよう。そして後ろの「To 100」の部分が問題となる。
- まずNextによってForに戻ってくると、カウンタ変数に変化が起こる。
- ここではカウンタ変数nの値が、1つだけ増える。つまり、最初にn=1となっていたので、nの値が2に変わる。
- そして、「To 100」の「100」と比べられる。
- 今のnの値(2)と100を比べて、100を超えていなければ、再度以下の繰り返し処理ブロックが実行される。
- このようにして、nが101になるまでForとNextの間が繰り返し処理される。
- nが101になると、繰り返し処理ブロックを実行せず、Nextの次が実行される。上記例では何もないので、プログラム実行は終了となる。
ちょっと分かりにくいかもしれないので、もう少し簡単に解説しよう。
For文では自分でカウンタ変数を用意し、数え始めの数と終了の数を指定しておく。
上記の場合、1から始めて100を超えるまで処理を繰り返せ、という意味になる。
実際の実行では、1行(1ステップ)づつ実行されることを決して忘れないように。
○ステップ実行で、確かめてみよう! ※教科書P86(4.7ワンステップ実行する)参照
- 導入編で勉強したはずであるが、デバッグのために作成したプログラムを1ステップづつ実行させることができる。
- これによって、上記プログラムがどのように実行されるのかを確かめてみよう。
- またFor-Nextが終了した時に、カウンタ変数nがいくつになっているのかも確かめてみよう。
このように、For文ではあらかじめ決められた回数(実際にはカウンタの最初の値と終わりの値)を指定するだけで、その間を指定した回数分だけ繰り返し処理をしてくれる。
観覧車に乗り、あらかじめ決められた数だけ乗り続けるといった感じであろうか。。。
但し、自分で数を数えなければいけない。もっと言うと、カウンタをリセット(初期値に合わせ)、グルグル回るたびにカウントアップし、回数を超えるまでといった感じであろう。
*教科書;
17-3 For文 p359
[「C班」プログラミング基礎のTopに戻る]