将数字乘以变量

时间:2013-11-26 12:28:50

标签: ruby

我正在做一个简单的彩票系统。我来到了我需要知道在平局中赢得了多少钱的部分。

我的想法是创建一个名为won = 0的变量,并在每次找到胜利者时将奖金乘以变量。它似乎不想乘以变量won

为什么它不会添加到变量won?有没有更简单的方法来做到这一点?也许用一种方法?

  • bought[i].lotterynumber是找到lotterynumber的数组
  • draw[x][0]是获胜者数字。

won = 0

for x in 0..4
  for i in 0..11
    if bought[i].lotterynumber == draw[x][0] 

      if x == 0 
        won += 4000000
      else

      end

      if x == 1 
        won += 1250000
      else

      end

      if x == 2 

        won += 500000

      else

      end

      if x == 3 
        won += 200000
      else

      end

      if x == 4 or 5 
        won += 200000
      else

      end
    end
  end
end

puts won.to_s

2 个答案:

答案 0 :(得分:1)

您不必指定else caluse(我注意到您为所有ifs添加了空白的elses)。这是有效的红宝石:

    if x == 0 
        won += 4000000
    end

然而,这不符合您的期望:

    if x == 4 or 5 
        won += 200000
    else

因为它总是评估为真。将语句修复为:

    if x == 4 or x == 5 
        won += 200000
    else

答案 1 :(得分:1)

所有if语句应该只是一个案例陈述

won += case x
  when 0
    4000000
  when 1
    1250000
  when 2
    500000
  when 3,4,5
    200000
  else
    0
end