.
中高生のための
今から始めるプログラミング
数当てゲームを作ろう -- do〜loop文
最終更新日:2004/02/12

<<BACK ↑HOME NEXT>>

 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  問題
上の数当てゲームでは、正解の数が大きければ大きいほど、恐ろしく難しくなります。そこで、この数当てゲームに少し手を加えたいと思います。もし、入力してもらった数が正解より小さい場合、大きい場合にそれぞれ何かメッセージを表示できるようにしてみましょう。
 
解答編へ
 

<<BACK ↑HOME NEXT>>

Copyright (C) 2003-2004 Shohei Ohsawa, Naoya Okada & Fumiya Miyakawa.. All rights reserved.