第6回 繰り返し(For…Next命令):プログラミングとは繰り返しに持ち込む作業

(学習目標)繰り返し命令For…Next命令を使えるようにする。

 

6−1 For…To…Next命令

マーリンは今、九九の8の段の後半を練習中です。8*7が覚えにくいのでこれだけ10回繰り返すことにしています。

Merlin.Speak "8" &" " &"5" &" " &"40"

Merlin.Speak "8" &" " &"6" &" " &"48"

Merlin.Speak "8" &" "&"7" &" " &"56"

    :(上の命令を9回繰り返す)

Merlin.Speak "8" &" "&"8" &" " &"64"

Merlin.Speak "8" &" "&"8" &" " &"72"

8×7を10回繰り返すのを全部書いていたのではプログラムが長くなるので、簡単に書くためのFor…Nextという繰り返し方法を用意しています。

Marlin.Speak “8 & &7 &56” を10行繰り返すのを、図6.1のように書き代えることができます。図6.2はFor命令の概念図です。

 

 

 

 

 

 

 

 

 

 

 


繰り返し命令(For…Next)では、Forで始まる最初の行に繰り返す回数を書きます。図6.1の、ctr=1 To 10 は“10回繰り返す”ことを示しています。ctrは繰り返し数をかぞえるための変数(黒板)です(変数名はctrでなくて何でもかまいません)。ctr=1は、最初変数ctrに最初1を書き込みます。そして、“繰り返しの中身”(例では、Marlin.Speak “8 & &7 &56”) を1回実行するごとにctrに1が加えられます。これを、ctr10になるまで10回(即ち、ctr1,2,3,4,5,6,7,8,9,10で10回)繰り返すことになる。

上の例では、Marlin.Speak “8 & &7 &56” 1行を繰り返す話ですが、何行でもかまいません。例えば8×7と8×8の2つを10回繰り返すには、

For ctr=1 To 10

  Merlin.Speak "8" &" "&"7" &" " &"56"

  Merlin.Speak "8" &" "&"8" &" " &"64"

 

Next

となります。8_7-56,8_8-64,8_7-56,8_8-64という風に10回繰り返します。

 

6−2 計算は、繰り返し足し込んでいく

コンピュータの計算の基本は、“足し込み”の“繰り返し”です。小遣帳で月の支出の合計をだすには、上から順に1つづつ加えては途中結果を保存し、途中結果に次の数値を加える、という処理を繰り返しますね。コンピュータも同じです、ただ途中結果は変数に書き込まれていきます。

 

 

 

 

 

 

 

 

 


1から100まで順に加算するプログラムは次のようになります。

‘===プログラム6.1

gokei=0

For kazu=1 To 100

gokei= gokei+ kazu

Next

MsgBox gokei

===

goukeiが途中結果を書いておく変数です。Goukeiを見てみると、最初0でしたが

 

 

 

 

 

 

 

 


という風に加算されていきます。

 

6−3 習うより慣れよ

繰り返しのパターンは、あまりありません。簡単な例題を並べますので、自分でやってみて下さい。

(例題1)For…Nextを使ってMerlinを5回、100ずつ右に移動させよう。

‘===プログラム6.2

x=100

For kaisu=1 To 5

Merlin.MoveTo  x,100

x= x + 100

Next

(解2)繰り返し数を数える変数kaisuを使う方法もあります。

‘===プログラム6.3

For kaisu=1 To 5

x=  100 * kaisu

Merlin.MoveTo  x,100

Next

 

(例題2)Merlin0から10まで読み上げさせよう。

‘===プログラム6.4

For kazu=1 To 10

Merlin.Speak kazu

Next

 

(例題3)Merlin0から変数owariで指定する数まで読み上げさせよう。

(繰り返し回数を変数で指定することもできます)

‘===プログラム6.5

owari= 7

For kazu=1 To owari

Merlin.Speak kazu

Next

 

(例題4)2を10回乗算し、結果メッセージボックスに書こう。

プログラム6.6

gokei=1

For kazu=1 To 10

gokei= gokei* 2

Next

MsgBox gokei

 

(例題5)InputBoxから10回数値を入力し読み上げよう

‘===プログラム6.7

For kazu=1 To 10

  data= InputBox ("数を入れてください")+0

  Merlin.Speak data

Next

 

(問題6.1)50から100まで順に加算しよう。a61.vbs

(問題6.2)1から、奇数だけを10個加算しよう。a62.vbs

(問題6.3)1からInputBoxで入れた数まで加算しよう。a63.vbs

(問題6.4)九九の6の段をFor命令で読み上げさせよう。a64.vbs

(問題6.5)乱数(2〜4)で求めた数だけ、お辞儀をさせよう。a65.vbs

(問題6.6)InputBoxで入力した数を5回掛け(5乗を求め)よう。(あまり大きな数を入力しないように注意)a66.vbs