回数の決まっていない繰り返し

例26

問題

1〜9までの数字を入力して、あらかじめ決めてある秘密の数字と一致したら「あたり」と表示して終わり。そうでなければ「もう一回」と表示して当たるまで入力させるプログラムを作りなさい。

定番の解き方

この手のプログラムの定番は、次のようにINPUTを2つ用意します。

入力を促す
入力
DO WHILE 当たっていない
    はずれですもう一回と表示
    入力
LOOP
あたりと表示
END

IFを使用したやり方

おすすめしません。IF文をやった後なのでこれを使いたくなるのもわかるのですが、この通りすっきりしません。WHILE でも判定しているのにIFでも判定するので無駄が多いのです。

入力を促す
入力
IF 当たった THEN
    あたりと表示
ELSE
    DO WHILE 当たっていない
       はずれですもう一回と表示
       入力
    LOOP
    あたりと表示
END IF
END

INPUTを一つに

定番の最初の入力をさせずに、間違った初期値を与えておきます。1回目と外れてからのメッセージが同じになってしまいます。それでかまわなければ、この方法もよいでしょう。

x を 10 などあり得ない数にする。
DO WHILE xが当たっていない
    予想する数字を入れてください。と表示
    xを入力
LOOP
あたりと表示
END

聖愛高等学校
http://www.seiai.ed.jp/