BNBのプログラミング勉強記録

ガチのプログラミング初心者が駆け上がっていくブログ

メモ(Ruby III)

メソッド基本

def introduce
  puts "こんにちは"
  puts "私はにんじゃわんこです"
  puts "14歳です"
end

puts introduce

引数の基本

def introduce(name)
  puts "こんにちは"
  puts "私は#{name}です"
end

introduce("ハンムラビ王")

引数のスコープ

メソッドの中だけ。すなわち、下記の例だとputs itemの部分でエラーになる。

def print_info(item)
  puts "わんこでんきへようこそ!"
  puts "今日は#{item}がセール中です!"
end

print_info("ヘッドホン")

puts item

第1引数、第2引数

def print_info(item,price)
  puts "わんこでんきへようこそ!"
  puts "今日は#{item}がセール中で#{price}円です!"
end

print_info("SDカード",1200)

戻り値

def discount(price)
	return price/2
end

puts "テレビがセール中です!"

half_price=discount(15000)

puts "特別価格で#{half_price}円です"

真偽値を返すメソッド

if文で使うような条件式をreturnすると、その条件式の結果として得られる真偽値(trueまたはfalse)を返すことができる。真偽値を返すメソッドは、メソッド名の末尾に「?」をつける慣習がある。

def shipping_free?(price)
  return price >= 5000
end

if shipping_free?(3000)
	puts "5000円以上のお買い上げなので送料はいただきません"
else
	puts "追加で送料をいただきます"
end

複数の戻り値

def price_with_shipping(price)
	# priceが5000以上のとき、戻り値としてpriceを返すif文を作成してください
	if price >= 5000
	  return price
  end
  # priceに500を加えた値を戻り値として返してください
	return price+500
end

puts "商品の合計金額は3000円です"
puts "お支払い金額は、送料込みで#{price_with_shipping(3000)}円です"
puts "-----------"
puts "商品の合計金額は10000円です"
puts "お支払い金額は、送料込みで#{price_with_shipping(10000)}円です"

キーワード引数

def buy(item:, price:, count:)
	puts "#{item}#{count}台のお買い上げです"
	puts "合計金額は#{price * count}円です"
end

buy(item:"テレビ", price:15000, count:2)