【Ruby】第三章 条件分岐 練習問題の答え

質問
【Ruby】第三章 条件分岐 練習問題をWhen構文で解いたのですが、いくつを代入しても、”再度降水…”と出てきてしまいます。
どこが間違っているかわかりません。
教えてください。

回答 ( 1 )

  1. 2023-07-11T16:36:47+09:00
    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
    ベストアンサー

回答する

申し訳ありません。現在回答の投稿を停止しています。