【问题标题】:Ruby Error: Not Finding Variable Defined in LoopRuby 错误:未找到循环中定义的变量
【发布时间】:2019-12-12 15:48:59
【问题描述】:

我的 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 未定义。我认为这是循环中的一个问题。而且我不知道如何将其实现为可以达到相同目的的另一种形式。有没有办法让变量成为全局变量?我已经尝试寻找其他方法以另一种格式制作它,但没有任何帮助。

【问题讨论】:

    标签: ruby loops variables scope undefined


    【解决方案1】:

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

    试试:

    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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多