【问题标题】:Break an Each statement once an inside IF statement is run once in Ruby在 Ruby 中运行一次内部 IF 语句后,中断 Each 语句
【发布时间】:2013-10-11 20:59:52
【问题描述】:

在下面的代码中,一旦if 代码成功地将它遇到的第一个 1 更改为 2,我如何打破 each 语句。

hash = {:key1 => "1", :key2 => "2", :key3 => "1", :key4 => "3" :key5 => "3"}
array = [:key1,:key2,:key3,:key4,:key5]
array.each do |x|
if hash[x] == "1"
hash[x] = 2
end

【问题讨论】:

  • x 是一个块变量。它不存在于块之外。这意味着,您的整个 each 块相当于什么都不做。您的代码的目的不明确。
  • 我更改了代码以进一步解释我的问题@sawa
  • @RavensFlock 给了你这个想法,为什么不用这个?

标签: ruby arrays if-statement each break


【解决方案1】:

你想要的像下面这样的东西

array = [1,2,2,1,2]
array.each do |x|
  break x = 2 if x == 1
end

【讨论】:

  • 如果我希望它在 x 被分配 2 后显示 puts x,我会将它放在哪里? @arup
猜你喜欢
  • 2015-08-23
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2016-03-26
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多