Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby |循环显示基于数字的变量_Ruby_Loops - Fatal编程技术网

Ruby |循环显示基于数字的变量

Ruby |循环显示基于数字的变量,ruby,loops,Ruby,Loops,20分钟来,我一直在想如何根据循环的当前编号显示变量,但我没办法弄清楚 我让它使用字符串,但不使用变量 foo1 = 'one' foo2 = 'two' foo3 = 'three' foo4 = 'four' foo5 = 'five' foo6 = 'six' foo7 = 'seven' foo8 = 'eight' foo9 = 'nine' foo10 = 'ten' 10.times do |n| n+=1 puts foo{n} end 代码需要执行

20分钟来,我一直在想如何根据循环的当前编号显示变量,但我没办法弄清楚

我让它使用字符串,但不使用变量

foo1 = 'one'

foo2 = 'two'

foo3 = 'three'

foo4 = 'four'

foo5 = 'five'

foo6 = 'six'

foo7 = 'seven'

foo8 = 'eight'

foo9 = 'nine'

foo10 = 'ten'

10.times do |n|
  n+=1
  puts foo{n}
end
代码需要执行以下操作:

puts foo1 + "\n" + foo2 + "\n" + foo3 + "\n" + foo4 + "\n" + foo5 + "\n" + foo6 + "\n" + foo7 + "\n" + foo8 + "\n" + foo9 + "\n" + foo10 + "\n" 

这正好回答了你的问题,但仅供参考,这是一个糟糕的想法,关于它本该是什么,请参见@Drenmi的答案(归功于@SergioTulentsev)


不清楚。请发布您希望得到的内容以及如何使用。显示计数中多个变量的时间,例如:将foo+N放在loop1上,使其显示foo1在loop2上,等等……当您发现自己需要这样做时,99%的确定迹象表明您需要使用数组或哈希而不是单个变量。例如,请参阅@drenmi的答案。您意识到您正在启用可怕的做法吗?:)@塞尔吉奥图兰采夫,我知道。不过,我在回答前面提到的问题。但是,也许可以添加一个“这回答了你的确切问题,但是JFYI,这是一个糟糕的想法,这就是它应该是什么…”SergioTulentsev你可以添加一个更好的答案practice@SergioTulentsev补充。
NUMBERS = %w[one two three four five six seven eight nine ten].freeze

# Not so good if the number of items changes
10.times do |n|
  puts NUMBERS[n]
end

# Better, but might not fit the homework requirements ;-)
NUMBERS.each do |number|
  puts number
end
foo1 = 'one'
foo2 = 'two'
foo3 = 'three'
foo4 = 'four'
foo5 = 'five'
foo6 = 'six'
foo7 = 'seven'
foo8 = 'eight'
foo9 = 'nine'
foo10 = 'ten'

1.upto(10) { |n| puts binding.local_variable_get "foo#{n}" }