ruby - 我的 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
解决方案
推荐阅读
- java - 活动中未显示底部导航栏
- python-3.x - 试图从 OptionMenu 中选择选项以使用 tkinter 在嵌套字典中获取多个字典值
- php - MySQL DB 查询抛出错误,说我有语法错误。好像找不到他们?我相信它在查询的列部分
- pyspark - 如何在不使用 StandardScaler 的情况下标准化 PySpark 中的列?
- azure - Azure 数据工厂映射值的一部分
- python - 如何使用 PyCharm Remote Deployment 开发多个包?
- ruby-on-rails - 使用 rspec 测试茧
- html - 使用 CSS 未将 HTML 项目定位在右侧
- javascript - 角度6面包屑不起作用
- ios - SKVideoNode 停止播放 SKAudioNode