目次に戻る | 前のページへ | 次のページへ |
先ほど試した for ループは仮変数に対してどこからどこまでくり返す かを最初に決めた上で処理を行うものでしたが,必ずしもそのように条件がはっ きりしている場合だけではありません.例えば,乱数を発生させてその数を足し て行き,合計がある数まで達したら処理を終わるようなスクリプトでは何回くり 返すのかは分かりません.そこで,終了条件をより柔軟に設定できるループに while ループがあります. スクリプトを見てみましょう.
sum = 0 i = 1 while sum < 100 num = rand(10) sum += num printf "回数:%2d, 乱数:%2d, 合計:%3d\n", i, num, sum i += 1 end |
くり返し乱数を発生させて,発生した乱数の合計が100を越えると終わります. 乱数を使いますので,実行するたびに結果は変わります.大体20回から30回くら いくり返して終了するはずです.ここで,使用したスクリプトについて少し説明 します.
乱数 (Random number) を発生させるメソッドです.カッコの中の10という引数 (ひきすう)により,0から9までの整数をランダムに発生させます.
printf 文の中で整数値を表す仮引数 %d ですが,このよう に数字を加えると,表示する桁数を指定できます.表示は右揃えになるの で,左に揃えるためには %-2d のように桁数の前にハイフンをつ けます.
while ループでは for ループのように何回くり返すかを数 える機能 (カウンタ) はありませんので,回数や順番を必要とする場合に はこのように自分で増やして行く必要があります.初期化は必ずループの 外側,ループの前で行わないとくり返すたびに初期化されてしまいます.
while ループの構文は,図1のように なります.
図1 while ループの構文
「文字列処理」と呼ばれるような,文章 (テキスト) がある限り読み込むとか, 出力すると行った処理で威力を発揮します.この処理については,後で時間があ れば言及することにします.
目次に戻る | 前のページへ | 次のページへ |