第16回Ruby勉強会@関西に行ってきた
色々なメソッドを定義してみましょう
Part1
.引数を三つ受け取り、引数の内容に応じて計算結果を返すメソッド
- 三つの引数のうち一つは演算子を表す文字列です
- 残りの二つは数値です
- eval系メソッドの使用は禁止です
- 最低限、四則演算を実装して下さい。それ以上実装するのは自由です。
Part2
・先ほど作成したメソッドに以下の機能を追加して下さい
- ゼロ除算した場合は例外メッセージを日本語で表示させる
- 対応していない演算子が与えられた場合は例外を発生させる
Part3
・先ほどまでに作成したメソッドの引数で受け取ることができる数値の個数を無制限にしてください
- ただし、演算子は一つでいいです。
- 例えば+,1,2,3のような引数が渡された場合の結果は6です。
case operator
when "+"
arg1+arg2
when "-"
arg1-arg2
when "*"
arg1*arg2
when "/"
arg1/arg2
end
end
def part2(operator,arg1,arg2)
begin
case operator
when "+"
arg1+arg2
when "-"
arg1-arg2
when "*"
arg1*arg2
when "/"
arg1/arg2
else
"その演算子には対応していません。"
end
rescue ZeroDivisionError
"0で除算されました。"
end
end
def part3(operator,arg1,*args)
begin
rtn=arg1
args.each{|arg|
case operator
when "+"
rtn+=arg
when "-"
rtn-=arg
when "*"
rtn*=arg
when "/"
rtn/=arg
else
"その演算子には対応していません。"
end
}
rtn
rescue ZeroDivisionError
"0で除算されました。"
end
end