LoginSignup
0
0

More than 3 years have passed since last update.

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

Posted at

初めに

rubyの練習問題を私なりの解説で解いてこうと思います。

練習問題

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

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

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

まずはDateクラスについてまとめてきます。

Dateクラス

Dateクラスとはrubyの標準ライブラリの1つです。標準ライブラリとはruby本体をインストールした時に自動でインストールされるクラスやモジュールのことです。

Dateクラスの読み込み

Dateクラスは日付や曜日を取得することができます。初めにDateクラスを使うにはためにはDateクラスを使用しますと宣言する必要があります。よって以下の文をコードの初めに書きDateクラスを使用することを宣言します。

require "date"

上記の記述によりDateクラスをライブラリから読み込みました。
次に今日の曜日を取得します。
曜日の取得は以下のような記述になります。

Date.today.wday

ちなみにwdayは曜日を取得することができるDateクラスに用意されているメソッドです。曜日を整数の0(日曜日)から6(土曜日)まで取得します。
しかしこのままでは使えないので上記の記述を変数dayに代入します。

day = Date.today.wday

上記の記述で曜日に合わせて整数を取得することができるようになりました。しかし整数だけで文字列がありません。よって配列daysを定義します。そしてその中に整数に合わせて曜日を格納します。

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

さて、ここまでで準備は完了です。
あとはif文を使用して問題文のような出力内容になるように記述するだけです。

問題の解答

今回は金曜日の場合のみ『今日は金曜日だ!!!』と出力します。まずはif文を使い金曜日の時に上記の内容が出力されるように記述します。

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

ポイントとしては曜日は日曜日から順番で0から数えることです。私は1から数えてよく間違えました。
あとは金曜日以外の記述をelseを使い記述します。

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

解答全体のコード

require "date"

day = Date.today.wday
days = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"]

if day == 5
  puts "今日は#{days[day]}だ!!!"
else
  puts "今日は#{days[day]}"
end

以上です。
初学者なのでもし間違いなどありましたご指摘お願いします。

0
0
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
0