]
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
結局、カロリーメーターは次のようになる。 次へ
Madoka Nishimura <madoka@e.koeki-u.ac.jp>