メソッドの定義方法は以下の通りです。
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年分のカレンダーを表示できるようになりました。
最近のコメント