 |
|
 |
|
中高生のための 今から始めるプログラミング
数当てゲームを作ろう -- do~loop文 |
最終更新日:2004/02/12
|
|
|
1 プログラムを無限に繰り返す方法
|
|
さて、for~next文では、決められた回数しか繰り返すことができませんでした。では、無限回繰り返したい場合はどうすれば良いのでしょうか。もちろん、「for i=0 to ∞」なんて打っても実行されるはずがありません。そこで登場するのが、do~loop文です。do~loop文を使うと、do と loop で挟んだ部分が何度も実行されます。例えば、次のようなプログラムがあります。
|
|
|
10 let a=0 !aを初期化
20 do !行をloopまで繰り返し実行
30 print a !aを表示
40 let a=a+1 !aに1をプラス
50 loop !20行へ戻る
99 end
|
|
|
このプログラムは、30行目と40行目を無限に繰り返し実行します。また、do~loop文の仲間で、決められた条件を満たす間プログラムを実行するものがあります。それが do while~loop文です。例えば、上のプログラム例の 20 行目を、
|
|
|
10 let a=0 !aを初期化
20 do while a<=10 !行をloopまで繰り返し実行
30 print a !aを表示
40 let a=a+1 !aに1をプラス
50 loop !20行目へ戻る
99 end
|
|
|
と書きかえると、これは無限に実行されるわけではなく、a が 10 以下である間だけ実行します。つまり、a が 11 になったら実行はされなくなるわけです。do while~loop文の逆の意味を持つものとして、do until~loop文があります。これは、指定された条件を「満たさない間」実行します。
|
|
2 数当てゲームを作ろう
|
|
それでは、do~loop文とその仲間を使って数当てゲームを作ってみましょう。ルールは簡単です。まず、正解の数を入力してもらいます。その後他の誰かに数を入力してもらって、それが当たりならメッセージを表示して終了します。もしはずれならまた数を入力してもらいます。つまり、はずれであるうちは何度も繰り返すのです。ですから、ソースは次のようになりますね。
|
|
|
10 input seikai !正解の数を入力してもらう
20 do while kazu<>seikai !入力された数が正解でなかったら繰り返す
30 input kazu !数を入力してもらう
40 loop !20行目に戻る
50 print "正解!!" !ループから抜け出したときのメッセージ
99 end
|
|
|
|
|
3 問題
|
|
上の数当てゲームでは、正解の数が大きければ大きいほど、恐ろしく難しくなります。そこで、この数当てゲームに少し手を加えたいと思います。もし、入力してもらった数が正解より小さい場合、大きい場合にそれぞれ何かメッセージを表示できるようにしてみましょう。
|
|
|
解答編へ
|
|
|
|
|
 |
|
 |