メソッドの定義方法は以下の通りです。
def メソッド名(引数1, 引数2,…) 実行する処理 end
簡単なサンプルを書いてみます。
#メソッド定義 def printRuby puts "I Love Ruby" end #メソッド呼び出し printRuby
実行結果は「I Love Ruby」が表示されるだけの簡単なものです。
次に引数と返値のあるメソッドを作ります。
#メソッド定義
def dice(n)
case n
when 1
a = "サイコロの目は"+(rand(6)+1).to_s+"です。"
return a
when 2
a = "サイコロの目は"+(rand(6)+1).to_s+"と"+(rand(6)+1).to_s+"です。"
return a
else
return "引数には1か2を選んでください。"
end
end
#メソッド呼び出し
n = dice(2)
puts n
dice(n)でnに入力した「値はcase n」で分岐の条件に使用されます。
「return」の後ろにある値が戻り値としてメソッドを呼び出した元に返されます。
「return a」ではaに入っている値が戻値として返されます。
では前回作ったカレンダープログラムをメソッドにしてみます。
#メソッド定義
require "date"
def show_calendar(y,m)
firstday = Date.new(y,m,1)
lastday = Date.new(y,m,-1)
calendar = firstday.strftime("%Y年 %m月")+"\n"
calendar += "日 月 火 水 木 金 土"+"\n"
if firstday.wday != 0 then
for x in 1..firstday.wday do
calendar += " "
end
end
for d in 1..lastday.day do
if firstday.wday == 6 then
calendar += sprintf("%2s ",d)+"\n"
else
calendar += sprintf("%2s ",d)
end
firstday = firstday.next
end
return calendar
end
#メソッド呼び出し
for x in 1..12 do
puts show_calendar(2010,x)
end
メソッドにすることにより簡単に1年分のカレンダーを表示できるようになりました。
最近のコメント