Menu
Coddy logo textTech

戻り値

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 50/88。

これまで、メソッドは出力を表示するなどのアクションを実行してきました。しかし、メソッドが真に強力になるのは、呼び出し元のコードにデータを送り返すことができるようになったときです。これが戻り値(return values)の役割です。

Rubyでは、メソッドは最後の式の値を自動的に返します。

def add(a, b)
  a + b
end

result = add(5, 3)
puts result  # 出力: 8

メソッドの中に puts がないことに注目してください。その代わりに、メソッドは a + b を計算し、その値を返します。その後、それを変数に保存したり、直接使用したりすることができます。

また、returnキーワードを明示的に使用することもできます:

def multiply(a, b)
  return a * b
end

puts multiply(4, 5)  # 出力: 20

return キーワードは、メソッドを即座に終了し、指定された値を返します。これは、条件に基づいて早期に終了したい場合に便利です。どちらのアプローチも機能しますが、Rubyプログラマーはコードをよりクリーンにするために、暗黙的な戻り値(implicit returns)に頼ることがよくあります。

戻り値を利用することで、操作を連結したり、シンプルなメソッドから複雑なロジックを構築したりできます。

def double(n)
  n * 2
end

puts double(double(3))  # 出力: 12
challenge icon

チャレンジ

簡単

1つのパラメータ n を受け取り、その数値の2乗(その数値自身を掛け合わせたもの)を返す square という名前のメソッドを定義してください。

入力から2つの整数を読み取ります。square メソッドを使用して各数値の2乗を計算し、それら2つの2乗の和を出力してください。

例えば、入力が 34 の場合:

  • 3の2乗は9
  • 4の2乗は16
  • 和は25

出力は以下のようになります:

25

入力が 52 の場合、出力は以下のようになります:

29

チートシート

メソッドは、それを呼び出したコードに値を返すことができます。Rubyでは、メソッドは自動的にその最後の式の値を返します。

def add(a, b)
  a + b
end

result = add(5, 3)
puts result  # 出力: 8

また、returnキーワードを明示的に使用して、メソッドを終了し値を返すこともできます。

def multiply(a, b)
  return a * b
end

puts multiply(4, 5)  # 出力: 20

戻り値を使用すると、メソッド呼び出しを連結させることができます。

def double(n)
  n * 2
end

puts double(double(3))  # 出力: 12

自分で試してみよう

# 入力から2つの整数を読み込む
num1 = gets.chomp.to_i
num2 = gets.chomp.to_i

# TODO: 以下にsquareメソッドを定義する


# TODO: squareメソッドを使用して平方の和を計算し、結果を表示する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン