メソッドの定義方法は以下の通りです。

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年分のカレンダーを表示できるようになりました。

2019年3月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

広告

現在の住まい、将来はVPSへ引越します。 ロリポップの上位版です。

広告

広告

最近のコメント

    広告

    Railsを動かす予定のVPS。無料キャンペーン中。

    広告