0
1

More than 3 years have passed since last update.

Ruby 問題④ if,else問題

Last updated at Posted at 2021-05-24

はじめに

現在はオリジナナルアプリの作成しつつ、毎朝送られてくるrubyドリルを復習しております。
本日もrubyドリルのアプトプットをします!

問題

19時から翌朝6時までにオウムに喋られると近所迷惑なのでその場合は「NG」、
それ以外は「OK」と出力するメソッドを作成します。
オウムが喋る時をtrue、喋らない時をfalseと入力することにし、時刻も同時に入力します。

#呼び出し方
parrot_trouble(talking, hour)

#出力例
parrot_trouble(true, 5)  NG
parrot_trouble(true, 7)  OK
parrot_trouble(false, 6)  OK

ヒント

〜だった時、かつ〜だった時

19時〜6時をどのように記述するか

解答

def parrot_trouble(talking, hour)
  if talking && (hour < 6 || hour >= 19)
    puts "NG"
  else
    puts "OK"
  end
end

オウムが喋ろうとしているときの時間帯が、19時から翌朝6時の時はNGを表示し、それ以外の時にOKを表示させます。
if talking と記述する事でtureの場合と判断されます。

(hour < 6 || hour >= 20)
# || という記述で「または」を意味します。(orのような感じ)
# 言葉にするとhourが6より小さい時、または20か、それより大きい時

どちらとも条件が成り立つ時に「NG」を出したいので

if talking && (hour < 6 || hour >= 19)
# && 短終論理演算子で左辺かつ右辺がtureの時

trueだった場合にif文の全ての条件が真になり、”NG”が表示されます

演算子はwebアプリを作る際に何度も何度も使うので必ず理解が必要です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1