2013-11-26 63 views
0

我正在做一個簡單的彩票系統。我已經到了需要找出總共贏得多少錢的部分。將數字乘以變量

我的想法是創建一個名爲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 
+0

請告訴我們什麼抽籤陣列買陣列的模樣。 – hirolau

+0

什麼是'0..4'和'0..11'?是整個數組還是僅僅是數組的一部分? – hirolau

回答

1

所有if語句應該只是一個case語句

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

hmm仍然不會將數字乘以贏得變量 – user3033493

+0

對不起,我的答案只是更好地格式化代碼,如果我們沒有獲得有關數組的更多信息,有缺陷的邏輯很難發現。 – hirolau

1

您不必指定else caluse(我注意到您已爲所有ifs添加空elses)。這是合法的紅寶石:

if x == 0 
     won += 4000000 
    end 

但是這不會做你所期望的:

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

因爲它總是會評估爲true。修復聲明:

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