初めまして。
質問をさせていただきます。
今Rubyを勉強中で、メソッドの引数や戻り値の課題をやっていたのですが、
メソッドに条件分岐を組み合わせて戻り値を用いるという課題がいまいち理解できませんでした。
実際のコードがこちらです↓
def price_with_shipping(price) # priceが5000以上のとき、戻り値としてpriceを返すif文を作成してください if price>=5000 return price end # priceに500を加えた値を戻り値として返してください return price+500 end puts "商品の合計金額は3000円です" puts "お支払い金額は、送料込みで#{price_with_shipping(3000)}円です" puts "-----------" puts "商品の合計金額は10000円です" puts "お支払い金額は、送料込みで#{price_with_shipping(10000)}円です"
コードの意味は分かるのですが、
returnの所がいまいち理解できません。
まず、priceの値が3000なので
if文の return priceはfalse。
ここまでは分かります。
ただ、ifにelseが無いのに
なぜ if文後のreturn price+500が実行されるのでしょうか?
単純にif文の条件がfalseなので、メソッドの戻り値が実行されたという事なのでしょうか?
もしそうなら、if文がtrueの場合
if文の後のreturnは実行されるのでしょうか?
なんといえば分からないですが、
初心者にでも分かるように教えていただきたいです^^;
宜しくお願いします。
たとえば if...else...end と書き換え、else に「return price + 500」を差し込んでも結果が変わらないということが判ったとき、なにか理解・納得は進みますか? (この例だと三項演算子を用いて「price >= 5_000 ? price + 500 : price」と1行で書くパターンも考えられます)

回答2件
あなたの回答
tips
プレビュー