前回は「Whileループ」を勉強しましたがどうでしたか? これでかなりプログラミングらしくなったと思います。 で、今回取り上げるのは、「繰り返し」の第二弾として、「Doループ」を学習します。 ただ、これは「While」に似ているので、前回に比べて、比較的分かりやすいと思います。 もし「While」が不十分だと思ったら、もう一回前回のを見直して、 今回の学習に入りましょう。
'lesson1-2-3
#consoleDim a As Integer Dim b As Integer Dim i As Integer a=2 '<==好きな数字を代入してください。 Print "このプログラムにはある整数が用意されています。" Do
Input "その数字を当ててください。";b
Loop Until i>=10i=i+1 If a=b Then
Print "正解です。"
EndIf
Exit Do Sleep(3000) End
|
C:\ActiveBasicCourse\lesson1-2-3... |
例えば3と入力すると... |
このプログラムにはある整数が用意されています。 その数字を当ててください。? 3 その数字を当ててください。? |
その後に2を入力すると... |
このプログラムにはある整数が用意されています。 その数字を当ててください。? 3 その数字を当ててください。? 2 正解です。 |
今回は数当てゲームを書いてみましたがどうでしたか? この例では正解の数は「2」にしてみましたが、他の数字でも試してみてください。 ただ、このときにあんまり変な数字をやるのはやめましょう。 例えば「22754」なんてするとほとんどの場合答えられません。 また「ある整数」のところを「1〜10までの整数」に変えるのもいいと思います。 で、話がそれましたが、今回は「Doループ」を勉強します。 ただ、これは「While」の親戚のようなものなので、前回に比べ簡単に習得できます。 では、説明に入りましょう。
-*-*-*-*-【説明】-*-*-*-*- | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
【使い方】 Do command Loop While(またはUntil) 条件式
【備考】
(1)Doとcommand 、command とLoopの間には、それぞれ改行を入れます。
(2)「While(またはUntil)」は「While」か「Until」のどちらかを使うという意味です。
つまり「Loop While」「Loop Until」の二通りに書けるということです。
(ただし後でも書きますが意味は違ってきます。)
条件式 が「真」(または「偽」)の間command が実行されます。
【解説】
(1)ループの流れはこうなっています。
以上が「Doループ」の流れです。 見て分かるように「Whileループ」と確かに違うところもありますが、条件式の結果に合わせながらループを続ける点では似ていますね。 「Until」と「While」のところですが、 「Until」はもともと英語で「〜まで」という意味で、「条件式 が真になるまで」ループを繰り返します。 一方「While」はもともと英語で「〜の間」という意味で、「条件式 が真の間」ループを繰り返します。
(2)「Doループ」は「Whileループ」は確かに似ていますが、次の2点で「Whileループ」と違っています。
(3)「Doループ」は「Whileループ」に書き換えが可能です。
ということで「説明」の下に書いてみました。
参考に見てみてください。
【使い方】 Exit ループの名前
【備考】
ループの名前 とは「While」や「Do」などのことです。
【意味】
最も内側のループの名前 を強制的に抜けます。
【解説】
今回の例では正解を入力したときのように、たまに臨時でループを抜けたいときがあると思います。
そんなときにこの「Exit」を使います。 この「Exit」は「意味」のところで書いたとおり最も内側のループの名前 を強制終了します。 これはどういうことかというと、まず「最も内側のループ」というのは、そのとき実行しているループのことです。 なぜ「内側」かというと、例えば「Whileループ」(ループ1とする)の中にまた「Whileループ」(ループ2とする)を作っているとすると、 ループ2の中のcommand の中で「Exit While」が出てくればループ2を抜け、 ループ2の中でないループ1のcommand の中で「Exit While」が出てくればループ1を抜けます。 またループの名前 をわざわざ書くかというと、「抜けるループを特定する」ためです。 例えば「Whileループ」の中に「Doループ」があったとき、 「Exit While」が出てくれば、 「Doループ」を実行中であろうと「Whileループ」を実行中であろうと「Whileループ」を抜けます。 【注意】
( )Exitの位置と抜けるループの例((2)で挙げた例)
|
下に「Doループ」を「Whileループ」に書きかえてみました。参考にしてみてください。
Do
command
Loop Until 条件式
|
Do
command
Loop While 条件式
|
↓ | ↓ |
command While Not条件式
command
WEnd
|
command While 条件式
command
WEnd
|
今回の「Doループ」はどうでしたか? 「Whileループ」に似ている部分が結構あり、多少は学習しやすかったと思います。 それでも「Until」や「While」など新しいものもあったので、 分からない部分はしっかり読み返して少しでも理解できるようにしてください。 では最後の仕上げ、「やってみよう」です。
-*-*-*-*- やってみよう -*-*-*-*- |
---|
ユーザーに、「0」を打つまで数字を何回も入力してもらい、
ユーザーが「0」を入力したら、今まで打ってきた数字の総計を表示するプログラムを作ってみよう。
|