休暇か、休暇ではない時の条件分岐を用いたプログラム(Ruby)

※Rubyアウトプット用の記事です。

平日ではないまたは、休暇の場合はtrueと出力し、
休暇ではない場合はfalseと条件分岐させるメソッドを作りましょう。

 上記の問題があるときに、if,elseを用いてプログラムを書く場合どのように記述すれば良いでしょうか。
 この問題文は、平日ではない、そして平日であっても休暇であればtrueが出力されると解釈できます。そのため、以下のような記述となります。

def sleep_in(weekday, vacation)
 if weekday == false || vacation == true
   puts true
 else
   puts false
 end
end

メソッド名をsleep_inとして仮引数にweekday(平日)、vacation(休暇)を指定しています。平日ではない、または休暇である場合はtrueをそれ以外はfalseを出力するプログラムになっています。すなわち、論理演算子である「||」を使っている関係でweekdayがtrueであってもvacationがtrueでさえあれば、tureが返されます。
 また条件式のweekday == falseの部分は平日ではないという否定の条件、「!=」を使って、weekday != trueと表すことができます。weekday != trueという式はAとBが等しくない場合にtrueを返します。つまりweekdayの中身がfalseであればtrueを返すようになっています。要するにweekday == falseと同義ということになります。

この記事が気に入ったらサポートをしてみませんか?