基本的Ruby练习 - 方法和If

时间:2016-05-31 05:30:30

标签: ruby

我正在做一个Ruby练习,但我无法弄清楚出了什么问题。我需要修改suma方法,以便我的测试都返回true。

我不允许添加其他if,或者删除代码或修改参数。我错过了什么吗?

def suma(a, b)
  "#{a} es mayor que #{b}" if a > b
  "#{a} no es mayor que #{b}"
end

#test
p suma(10, 5) == "10 es mayor que 5"
p suma(4, 23) == "4 no es mayor que 23"

1 个答案:

答案 0 :(得分:2)

您在第一个条件中缺少return

def suma(a, b)
  return "#{a} es mayor que #{b}" if a > b
  "#{a} no es mayor que #{b}"
end

Ruby默认会返回方法中的最后一个语句,但它允许提前返回。由于你想要a > b提前返回,你必须尽可能多地告诉Ruby。否则,它将执行该行并默认为该方法中的最后一个语句以便返回。

相关问题