q が入力されたら while 文を抜けるようにしたいので、 変数に文字列が入力されたあとに判断させるようにする。
また、
while
文を抜けるには、
break
という実行文を使う。
break
を
if
文の中に含め、
while
文を抜ける。
また、終了したいときの動作を
知らせるために、入力を促す部分に
操作方法を書いておく。
while true
STDERR.print("摂取したカロリー [kcal]( 入力終了は q ): ")
カロリーを入力させることを促す
cal = gets.chomp 入力された値を変数 cal にしまう
if cal == "q"
break
end
end
もし変数 cal に文字列 q が入っていれば、 break を実行せよ、という実行文を while true -- end に含めることができた。
実行しても、結果は出力されない。なぜならば、変数 cal に入った文字列を総カロリーを変数 total に次々と足し合わせる部分が欠けているためである。 文字列 q 以外は数値となる文字列が変数 cal に代入されることが期待されるから、 変数 cal に入った文字列を整数値に変換し変数 total にしまいたい。
end # if 文の end
total += cal.to_i
end # while 文の end
結局、カロリーメーターは次のようになる。 次へ