バイオインフォ道場、くまぞうです。
while文は、条件を満たす間ずっとコードブロックを繰り返す場合に使います。例えば、「ファイルの末尾までチェックする」とか、「ある条件を満たすまで」というような回数不定の条件などで用いると便利です。
スポンサーリンク
while文による繰り返し制御
while文の書き方
while文を繰り返すための条件式を書きます。条件がtrueの間ずっと繰り返しを行います。条件を満たしたか?の判断に、「繰り返し処理を脱出するbreak」や「途中で折り返すnext」などの制御文と一緒に用いられることが多いです。
while文の一般的な形式
while 条件式 対応した文 ... end
プログラム
test_while.rb
#! /usr/bin/ruby require 'io/console' sec = ("A".."Z").to_a.sample #puts sec puts "PLEASE INPUT KEY(A-Z). Quit:Control+C" begin count = 0 while count<10 key = (STDIN.gets.chomp)[0] count = count+1 puts sec<key ? "A..#{key}" : "#{key}..Z" break if key==sec end puts count<10 ? "you win" : "ruby win" rescue Interrupt => e exit end
プログラム実行
test_while
$ test_while.rb PLEASE INPUT KEY(A-Z). Quit:Control+C ------------------------------------- A A..Z H H..Z O O..Z Q Q..Z V A..V T T..Z you win
プログラムについて
test_while.rbでは、入力されたキーをチェックするために「while」を使いました。標準入出力STDIN.getsを使って、キーボードから入力された文字を判断します。10回以内の入力でランダムに選ばれた文字と一致したら、「あなたの勝ち」です。10回以内に当てれなかったら、「ruby」の勝ちです。
whileの条件は入力回数のcount<10で、1回入力する度にcount+1されます。key==secでキーが一致したらbreakでwhileの繰り返しを抜けます。begin〜rescueは、強制終了のControl+Cを捕捉するために準備しました。 秘密のキーは、「("A".."Z").to_a.sample」で実行毎に1つ選びます。ヒントを表示していますが、最も近かった情報を記録して表示すると、もっと楽しめると思います。
スポンサーリンク