] Lecture Notes for "Introduction to Ruby Programming I (03)"

特定の文字列で while true -- end 文を抜けるには

q が入力されたら while 文を抜けるようにしたいので、 変数に文字列が入力されたあとに判断させるようにする。

また、while 文を抜けるには、break という実行文を使う。 break を if 文の中に含め、while 文を抜ける。 また、終了したいときの動作を知らせるために、入力を促す部分に操作方法を書いておく。

while true
   STDERR.print("摂取したカロリー [kcal] ( 入力終了は q ) : ")     
   # カロリーを入力させることを促す
   cal = gets.chomp                              
   # 入力された値を変数 cal にしまう 
   if cal == "q"
       break
   end
end

break は、while 文を抜ける実行文である。 もし変数 cal に文字列 q が入っていれば、break を実行せよ、という実行文を while true -- end に含めることができた。

実行しても、結果は出力されない。なぜならば、変数 cal に入った文字列を総カロリーを変数 total に次々と足し合わせる部分が欠けているためである。 文字列 q 以外は数値となる文字列が変数 cal に代入されることが期待されるから、 変数 cal に入った文字列を整数値に変換し変数 total にしまいたい。

   end            # if 文の end
    
   total += cal.to_i

end               # while 文の end

結局、カロリーメーターは次のようになる。 次へ

本日の講義目次 / 基礎プログラミング I / 2007 年度

Madoka Nishimura <madoka@e.koeki-u.ac.jp>