質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

238閲覧

ifの条件式がif内のdefにあり読んでいて違和感があった。(明確な解決を求めるのでなく、感覚的な質問です)

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/10/10 17:40

Ruby

1if count >= 1 && Menu.is_discount_day? 2 total_price -= 100 3 end 4 5 return total_price 6 end 7 8 def Menu.is_discount_day? 9 today = Date.today 10 return today.sunday? 11 end 12end

上記のコードは、注文システムを想定していて、注文個数が1個以上だった場合かつ日曜日だったら、合計金額から100円割り引くというものです。

素朴な疑問なのですが、def Menu.is_discount_day?で今日が日曜日か確かめた上で、
割引日(日曜日)かつ1個以上という条件のもとifをするのが、流れとして正しいような気がするのですが、上下逆なのは理由があるのでしょうか?

プログラミング学習サイトで解説にそって解答したあと、読み返していて、読みにくいと思ったので、違和感を覚えました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

インデントが崩れてるせいでif内に見えてるだけのように思います。


追記
予想されるコード全文

rb

1class Menu 2 def calc # メソッド名・引数はしらん 3 # なんらかのコード 4 if count >= 1 && Menu.is_discount_day? 5 total_price -= 100 6 end 7 return total_price 8 end 9 10 def Menu.is_discount_day? 11 today = Date.today 12 return today.sunday? 13 end 14end

投稿2018/10/10 18:16

編集2018/10/11 11:55
asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/11 11:16

回答ありがとうございます。複数のユーザーさんから、問題が含まれないと指摘がありましたが、、 ifは最後のendで囲んでいると思っていたのですが、違うのですか?
asm

2018/10/11 11:44 編集

ifは最初のendで囲われており 次のendが何で開始されているかは不明です。 多分書かれてない部分にdefがあると思いますけど
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問