有条件的麻烦

时间:2016-08-17 13:51:02

标签: ruby math conditional

我试图定义一个返回" fizz"当整数可被3整除时," buzz"什么时候可以被5整除?" fuzzbuzz"当数字可被两者整除时。我知道15可以被两者整除,但是我不知道我在代码中输错了什么。谢谢。

def fizzbuzz(int)
  if int % 3 == 0
    return "Fizz"
  elsif int % 5 == 0
    return "Buzz"
  elsif int % 15 == 15
    return "FizzBuzz"
  else
  end
end

1 个答案:

答案 0 :(得分:3)

因此,对于条件,ruby按顺序评估if,然后评估elsif,最后评估else。如果任何条件的计算结果为true,则忽略其余条件。

def fizzbuzz(int)
  if int % 3 == 0
    return "Fizz"
  elsif int % 5 == 0
    return "Buzz"
  elsif int % 15 == 15
    return "FizzBuzz"
  else
  end
end

因此,让我们根据您当前的代码查看一些示例。

int = 3 我们转到if int % 3 == 0,这是真的,因此代码返回“Fizz”,并且在评估之下没有任何内容。

int = 5int % 3 == 0是假的,我们进入第一个elsif。 int % 5 == 0是真的,我们返回“Buzz”

现在让我们来看看15, int % 3 == 0是正确的,因此代码将返回“Fizz”并忽略其他所有内容,即使在if语句之后有更多条件将被评估为真。

这里的顺序非常重要。您需要先检查int % 15 == 0,然后转到% 3% 5