もう少し複雑なメソッドを定義してみよう。
金額を渡すと消費税を計算するメソッドを作成してみよう。 税率として「10%固定」というのでは安物電卓と変わらなくて悔しいので 税率も選べるようにしよう。
#!/usr/koeki/bin/ruby # coding: utf-8 def tax(price, ratio) # priceに値段、ratioに税率 をもらう charge = price*ratio charge.to_i end
ここで定義したtax
メソッドを
参照するときは、第1引数に金額、第2引数に税率を指定する。
tax(250, 1.10)
これでtax
メソッドで price=250, ratio=1.10
となり、税率10%で計算した結果を返してくれる。
配列をメソッドに渡すこともできる。次のメソッドは、 数値が複数入っている配列を受け取り、それらの値の平均値を求めるものである。
def average(score) # scoreは数値のたくさん入っている配列 sum = 0.0 # 割り算する予定なので浮動小数点数にしておく for x in score sum += x end sum/score.length end
これを利用して、入力した数値全ての平均値を出力するプログラム を作ると以下のようになる。
#!/usr/koeki/bin/ruby # coding: utf-8 def average(score) # scoreは数値のたくさん入っている配列 sum = 0.0 # 割り算する予定なので浮動小数点数にしておく for x in score sum += x end sum/score.length end points=[] # からっぽの配列を作る i=0 # iがpointsの添字となる while true STDERR.print "数値を入力して下さい: " line=gets if line == nil break end points[i] = line.chomp!.to_f i += 1 end printf("\n平均値は %6.2f です\n", average(points))
実際に実行してみよう。データの入力の最後には[C-d]を タイプする。
% ./average.rb 数値を入力して下さい: 1 数値を入力して下さい: 2 数値を入力して下さい: 3 数値を入力して下さい: 4 数値を入力して下さい: [C-d] 平均値は 2.50 です