0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ruby 問題⑤ if,else問題 〜ポイント編〜

Posted at

##はじめに
またもやif else問題です。

本日受けたスクール独自のスキルチェックテストも3割はif,else問題でした。

それほどしっかり身につけなければいけないと思うので本日もしっかりアプトプットしていきます。

##問題

サッカチーム、テルフィーFC(ウイイレ風)のーショップでグッズを買うとポイントがついてきます。
購入金額が4,999円以下の場合、5%のポイント
購入金額が5,000円以上の場合、10%のポイント
このように付与されるポイントを出力するメソッドを作りましょう。

ただし試合でチームが勝利したの場合はポイントが5倍になります。
勝ちの場合はtrue, 負けの場合はfalseで表します。
また、小数点以下をすべてのポイント計算が終わったあとに切り捨てましょう。

.rb
purchase_points(4000, false)  200ポイント獲得です

##ヒント

・これまたif,elseで条件分岐します

・5月30日がCL決勝です。(関係なし)

・小数点を切り捨てるメソッドは?

##解答

.rb
def purchase_points(amount, winning)
  if amount <= 4999
    point = amount * 0.05
  else
    point = amount * 0.1
  end
  if winning
    point = point * 5
  end
  puts "#{point.floor}ポイント獲得です"
end

解説します。

まずは引数で

purchase_points(amount, winning)
purchase_points(4000, false)
amount = 購入金額 winning = 勝ち、負け(ture,falseで表します)

続いて条件分岐です。

もし、購入金額が4,999円以下の場合、5%のポイントがつき
購入金額が5,000円以上の場合、10%のポイント

という記述になります。

.rb
def purchase_points(amount, winning)
  if amount <= 4999
    point = amount * 0.05
  else
    point = amount * 0.1
  end
end

これで購入金額についての記述が終わりました。

次は勝ち負けについてです。

もう1つ条件分岐が必要です。

もし、勝ったときはポイント10倍、負けたら何もなしという条件分岐です。

..rb
 if winning
    point = point * 5
  end

簡単な記述ですね!

これらを合わせて解答になります。

.rb
def purchase_points(amount, winning)
  if amount <= 4999
    point = amount * 0.05
  else
    point = amount * 0.1
  end
  if winning
    point = point * 5
  end
  puts "#{point}ポイント獲得です"
end

purchase_points(3150, true)
#出力 787.5ポイント獲得です

ポイントには普通小数点はいらないですよね。。。
そこで.floorメソッドを用います。

irb(main):001:0> 4.1.floor
=> 4
irb(main):002:0> 4.9.floor
=> 4
.rb
 puts "#{point.floor}ポイント獲得です"
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?