はじめに
プログラミング数ヶ月のペーパープログラマーです。
預金システムのコーティングを行いました。
自分の解答と模範解答が異なるのですが、実行結果は同じです。
この場合自分の解答でも正答になるのか分からずご教授頂きたいです!!
問題
銀行口座に10万円の預金残高があり、お金を引き出すプログラミングを作成する。
以下の条件を達成するプログラムを作成しなさい。
・お金を引き出すと手数料110円がかかり、
「○○円引き落としました。残高○○円です」と表示する。
・もし預金残高より多く引き落とされたら「残高不足です」と表示する。
def withdraw(balance, amount)
fee = 110 # 手数料
# 引き落とし額と残高を表示する、もしくは残高より多く引き落としたら残高不足と表示
end
balance = 100000 # 残高
puts "いくら引き落としますか?(手数料110円かかります)"
money = gets.to_i
withdraw(balance, money)
自身の解答
def withdraw(balance, amount)
fee = 110
direct = balance - (amount + fee)
if direct >= 0
puts "#{amount}円引き落としました。残高は#{direct}円です"
else
puts "残高不足です"
end
end
模範解答
def withdraw(balance, amount)
fee = 110
if balance >= (amount + fee)
balance -= (amount + fee)
puts "#{amount}円引き落としました。残高は#{balance}円です"
else
puts "残高不足です"
end
end
balance = 100000
puts "いくら引き落としますか?(手数料110円かかります)"
money = gets.to_i
withdraw(balance, money)
解説
自身の解答では
先に変数「direct」に引き落とし後の残高を導く計算結果を代入しています。
その後、変数directが0より大きいか小さいかの条件分岐を実行しています。
模範解答では
条件分岐内の処理で計算式を記述しています。
まとめ
模範解答では記述量も多くなっているので、自身の解答の方が良いのでは?
と疑問が残ります。。。
ただ、自分の解答に自信を持つだけの知識もありません(笑)
ですので、心優しい方、ご教授お願い致します。