ruby 错误 : Not Finding Variable Defined in Loop

标签 ruby loops variables scope undefined

我有 Ruby 代码,它在循环中定义了一个变量。

print("What difficulty do you want on a scale of 1-5?\n")
loop do
  difficulty = gets.to_i
  break if difficulty == 1 or difficulty == 2 or difficulty == 3 or difficulty == 4 or difficulty == 5
end
range = 10 if difficulty == 1
range = 100 if difficulty == 2
range = 500 if difficulty == 3
range = 1000 if difficulty == 4
range = 5000 if difficulty == 5

我收到一个错误,变量难度未定义。我认为这是一个来自循环的问题。我不知道如何将其实现为另一种形式来达到相同的目的。有没有办法使变量成为全局变量?我尝试过寻找其他方法以另一种格式制作它,但没有任何帮助。

最佳答案

您可以在循环外部定义它,否则它会受到范围限制。

尝试:

difficulty_range = {
  1 => 10,
  2 => 100,
  3 => 500,
  4 => 1000,
  5 => 5000
}

difficulty = nil

loop do
  print("What difficulty do you want on a scale of 1-5?\n")
  difficulty = gets.to_i
  break if (1..5).include?(difficulty)
end

p difficulty_range[difficulty]

关于 ruby 错误 : Not Finding Variable Defined in Loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308287/

相关文章:

ruby - Ruby 中的 URI.escape 和 URI.encode 有什么区别?

arrays - 如何根据 Ruby 中的多个条件拒绝或选择

ruby - 在 sinatra 和 ruby​​ 中测试 Rack 超时

JavaScript 数组有元素但长度为零

java - 我的值一直显示为 NaN

条件变量信号问题

ruby-on-rails - Sinatra 在服务器上安装时出现以下错误

javascript - 循环中的 jquery 动画返回相同的索引

file - SED 用文件中的可变行替换每个占位符

loops - 批处理脚本中的 for 循环增加两个或多个变量