問題
ユーザーが数字を2つ渡すと、それらを掛け算した結果を返すプログラムを作ってください。
定義する変数
2つの数字を、それぞれnum1, num2という変数にgetsメソッドを利用して定義してください。
という問題。
下記、実行結果の例。
#デスクトップに移動
$cd Desktop
#Rubyファイルを実行
$ruby argument_test.rb
最初の数字を入力してください
5
2番目の数字を入力してください
6
5と6をかけた答えは30です!
以下、模範解答
def multiplication(num1, num2)
puts "#{num1}と#{num2}をかけた答えは#{num1 * num2}です!"
end
puts "最初の数字を入力してください"
num1 = gets.to_i
puts "2番目の数字を入力してください"
num2 = gets.to_i
multiplication(num1, num2)
以下、解説
今回は基本的なdefメソッドとgetsメソッドの使い方の復習問題のようだがポイント引数の使い方であるらしい。
引数の受け取り側の名前は何でも良いということは、メソッドの呼び出し側と同じでも構わないということで、不自然に違う名前にするくらいなら、同じ名前にした方がわかりやすいことも多々ある。
メソッドには、複数の引数を渡すこともできます。複数の引数を渡した場合、引数の受取側はメソッドの呼び出し側での引数の順番で代入される値を決めています。今回はnum1, num2といった順番で引数を渡したため、メソッド側でもそれぞれnum1とnum2にそのままの順番で値が代入されています。