For文の応用
・二重ループによる「九九」の計算
・うまく表示ができないのでつまらないかもしれないけど・・・
注意すべきことは、カウンター変数をループの中で変えては絶対にいけない。
○For文の中にFor文を!
- For文内のブロックは、一連の正しいプログラムであれば原則としては何を書いてもよい。
つまり、If文をいくつもかこうが、For文を書こうが全く問題はない。
- For文による二重ループのプログラムを作ってみよう。
- 遊園地のコーヒーカップ?カップが回りながら、全体が回る。
- For文の中のブロックにFor文を書くと、どうなるのか、慌てずにじっくりと。
一文一文をきちんと追いかけられれば分かるはず。
- カウンター変数をループ内で変えるようなプログラムは駄目ということは、
外のループのカウンタ変数と、中のループのカウンタ変数は、変えなければいけない。
例;
Dim n,m
For n = 1 to 10
'ここにも書けるA
For m = 1 to 10
'もちろんここにも書けるB
Next m
'ここにだって書けるC
Next n
さて上記例で、Aが何回、Bは何回、Cは何回実行されるのかを考えてみよう。
○「九九」をプログラミングしてみよう!
- 小学校で習った「九九」をプログラミングして、コンピュータに計算させてみよう。
- 「1×1、1×2、1×3、・・・、2×1、2×2、・・・9×9」という順に計算をさせる。
- For文一つではうまくいかない。
- まずは1の段の計算において、1*i と考え、iを1,2,・・・と変化させていくことを考えよう。
- そして、j段の計算として、jを1,2,・・・と変化させていくことを考えよう。
- 結果としては、j * i が九九の計算となるはず。
- まずは表示される結果の見栄えを気にせずに、9×9回正しく計算されるプログラムを完成させよう。
- 本当は九九の表を表示できるとよいのだけれど、ちょっと難しいので、各々の掛け算の結果をLabelに表示する程度にしておこう。
- ※ワンステップ実行できちんとたしかめてみよう!
- 注意;二重にFor文を書く場合は、各々のカウンタ変数を、必ず別の変数にしないと、絶対にうまくいかない!
- 絶対にダメな例;For n=1 to 10: For n=1 to 10:・・・:Next n: Next n としては駄目!
For文でも、If文でも、いわゆるブロックと呼ばれる部分については、自由にプログラムを書くことができます。よって、For文の中にFor文を書こうが、If文の中にIf文を書こうが、Forの中にIfを2個書こうが、Ifの中にFor、その中にIf、その中にForを書こうが自由です。但し、カウンタ変数など繰り返しや分岐の条件に関連する変数には注意すること。
何度も言っているけれど、文法はきちんと守らなければいけないが、どのように組み合わせるのかは自由だし、決まりはないので、自分で考え、工夫し、必要なことをさせるようにしないといけない。
[「WR班」プログラミング基礎のTopに戻る]