【Ruby】特定条件のみに呼応するプログラムの作成

 

今日の曜日を表示するコードをDateクラスを使用して記述する。

ただし、金曜日だった場合だけ以下のように表示の内容を変えたい!

(出力内容)
「今日は月曜日」
「今日は金曜日だ !!!」

 

【模範解答】

require "date"

 

day = Date.today.wday

days = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"]

 

if day == 5

  puts "今日は#{days[day]}だ!!!"

else

  puts "今日は#{days[day]}"

end

 

【自分への解説】

 

◯Dateクラス

DateクラスとはRubyの標準ライブラリの機能。Dateクラスを使うには以下一文を記述する。

 

require "date"

 

次に、Dateクラスを用いて「今日の曜日」を取得する場合は以下のように記述する。

 

Date.today.wday

 

wdayは曜日を0(日曜日)から6(土曜日)の整数で取得することができる、Dateクラスに用意されているメソッドのこと。

 

require "date"

 

day = Date.today.wday

 

puts day

 

例えば上記コードを入力すると、曜日に合わせた数字がターミナル上で出力される。

 

◯コードを細かくみていく

 

require "date"

 

まずはDateクラスの使用を宣言

 

day = Date.today.wday

 

ここで、wdayメソッドを用いて曜日を0(日曜日)から6(土曜日)の整数にしたときの「今日」の値を取得します。

 

days = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"]

      0.              1.              2               3.           4.                 5.             6

ここで、配列daysを定義し、先程の、日曜日(0番)~土曜日(6番目)まで文字列を格納する。

 

if day == 5

  puts "今日は#{days[day]}だ!!!"

else

  puts "今日は#{days[day]}"

end

 

ここからはif文。

配列を取得するためには

 

配列[添字]

 

という記述が必要。

ここで、配列[添字]を当てはめると

days[day]となり、puts以降の文が完成する。