【Ruby】第三章 条件分岐 練習問題の答え 質問 【Ruby】第三章 条件分岐 練習問題をWhen構文で解いたのですが、いくつを代入しても、”再度降水…”と出てきてしまいます。 どこが間違っているかわかりません。 教えてください。
回答 ( 1 )
Rubyのcase文は、ピンポイントで「この値の場合、この値の場合・・・」という使い方をするため、複雑(複数)な論理式を直接使用することができません。 つまり when (rain >= 0) && (rain <= 40)のような構文は利用できません。(厳密にいうと rain >= 10 && rain <= 40 を評価した true/false の値と rain を比較してしまうので rain は true でも false でもないので when の中に入らずに else に入ってしまいます) そのためこの課題では case-when を使うのではなく、if-else if-else を使うようにしてください。 ちなみに when-case で無理やりやる場合は以下のようになります。 rain = 46 case rain when 0..40 puts("今日は天気でしょう") when 41..59 puts("折り畳み傘を持っていきましょう") when 60..100 puts("傘を持っていきましょう") else puts("再度降水確率を代入してください") end