我有一个嵌套的哈希,我从中提取了密钥。此键显示给用户以选择输入现在用户输入输入并根据该输入,它从散列中找到该键并检查该键是否存在于散列中,如果它存在于散列中而不是程序继续,否则它给出消息无效选项,然后再次显示上一条消息以选择输入。
哈希:@metals = {
"1" => {Aluminium: 100},
"2" => {Steel: 80},
"3" => {Copper: 60}
}
我的代码:
def getmetal
puts "Which metal do you want to use?"
@metals.each do |key1, value1|
value1.each do |key2, value2|
puts "Enter #{key1} for #{key2}"
end
end
@metalsdata = gets.chomp
if @metals.has_key?(@metalsdata)
@metalname, @metalprice = @metals[@metalsdata].first
else
puts "Invalid option"
end
end
我已经做了很多这个部分我想要做的是如果用户输入错误的选项而不是显示“请选择有效输入”的错误消息,然后再次请求输入。 建议我如何实现它?
答案 0 :(得分:1)
while !@metals.has_key?(@metalsdata = gets.chomp) do
puts 'Please enter correct value'
end
@metalname, @metalprice = @metals[@metalsdata].first