返回结果和模

时间:2017-09-21 02:56:51

标签: ruby

我正在尝试编写一个方法,要求两个2个整数,并将第一个除以第二个并返回结果,包括余数。

def remainder(a,b)
  return a/b
  return a%b
end
puts remainder(100,6)

这就推出了

16

如果我使用此代码

def remainder(a,b)
  return a%b
end
puts remainder(100,6)

这就推出了

4

我不明白如何使模数值和余数在puts语句中显示。

更新 根据Simple Lime的建议,我使用了以下代码......

def remainder(a,b)
  return a.divmod(b)
end
puts remainder(100,6)

哪个放

16
4

并且正如我所希望的那样运作。

1 个答案:

答案 0 :(得分:3)

当您需要返回多个值时,可以从方法返回一个数组:

def remainder(a, b)
  [a / b, a % b]
end

puts remainder(100, 6).inspect # => [16, 4]

然后您可以根据需要将每个值分配给不同的变量:

div, mod = remainder(100, 6)
puts div # => 16
puts mod # => 4

作为旁注,如果你只需要2个数的商和模数,那么已经有一个内置函数divmod使用上面的技术做到了这一点:

100.divmod(6) # => [16, 4]