首页 > 解决方案 > 我的 ruby​​ while 循环没有给我任何输出作为数字数组

问题描述

该循环旨在提取数组( allergy_values )中的哪些数字将返回等于用户输入数字( score )的总和并将它们放入数组( arr );但是,在输入分数后,程序只将分数输出到屏幕上,并不创建数组。

allergy={"eggs"=>1,"peanuts"=>2,"shellfish"=>4,"strawberries"=>8,"tomatoes"=>16,"chocolate"=>32,"pollen"=>64,"cats"=>128}
puts "Enter your allergy test score: "
print "> "
score = gets.strip.to_i
allergy_values = allergy.values.reverse
allergy_finder = allergy.invert
arr = []
allergy_list = []
i = 0
while i>=0 && i<allergy_values.size
    if score - allergy_values[i]>0
      arr.push(allergy_values[i])
      score = score - allergy_values[i]
      i+=1
      next
    elsif score - allergy_values[i]== 0
      arr.push(allergy_values[i])
      exit
    else
      i+=1
      next
    end
end
p arr

标签: ruby

解决方案


推荐阅读