3つの数値の合計を出力するメソッドを作りましょう。
ただし、同じ数が含まれている場合は、
合計にカウントされません。
下記は、数値が1と2と3の場合の内容です。
def lone_sum(ary)
uniq_nums = []
ary.each do |num|
count = 0
ary.each do |i|
if num == i
count += 1
end
end
if count < 2
uniq_nums << num
end
end
sum = 0
uniq_nums.each do |unique_num|
sum += unique_num
end
puts sum
end
lone_sum([1, 2, 3])
下記が解説です。
def lone_sum(ary) #aryの中身は1,2,3です。
uniq_nums = [] #uniq_numsが空の状態です。
ary.each do |num| #aryをnumという変数にして1,2,3を繰り返します。
count = 0 #カウントは0から始まります。
ary.each do |i| #aryをiという変数にして1,2,3を繰り返します。
if num == i #numとiが同じ数値であればtrueを出力します。
count += 1 #trueの場合その数値の数を1から数えます。今回は、1,2,3それぞれ1と1と1です。
end #eachは範囲内の処理が終わるまで繰り返されません。つまり、numがそのままでiの数値が繰り返される処理がnumの数値分、繰り返されます。
end
if count < 2 #カウントが2未満の場合trueを出力します。
uniq_nums << num #trueの場合、uniq_numsにnumを代入します。今回は、1と2と3が代入されます。
end
end
sum = 0 #sumは0です。
uniq_nums.each do |unique_num| #uniq_numsを繰り返します。
sum += unique_num #sum = (0+1)+(0+2)+(0+3) = 6
end
puts sum #6が出力されます。
end
lone_sum([1, 2, 3])