我正在尝试创建一个输出每个数字的程序,以及它是否可以被数字2-9整除。我这样做是通过迭代2-9并将每个数字推到一个数组上,但是,编译时出现错误:
/Users/XXX/XXX/XXX/XXX.rb:3: warning: already initialized constant ArrayOfMultiples
如何删除此错误?
这是我的代码:
(1..200).each do |number|
output_str = ""
ArrayOfMultiples = Array.new
(2..9).each do |multiple|
if number%multiple == 0
ArrayOfMultiples.push(multiple)
end
end
output_str = number.to_s + " is divisble by " + ArrayOfMultiples.join(", ")
puts output_str
end
答案 0 :(得分:2)
以小写字母开始变量,否则它被视为常量。如果重新初始化常量,则会收到警告。
arrayOfMultiples
如下所示的简单程序可以演示此行为:
A = 1
A = 2
当您运行上述脚本时,它会说:
test.rb:2: warning: already initialized constant A
test.rb:1: warning: previous definition of A was here
答案 1 :(得分:0)
你也可以让这更简单:
(1..200).each do |x|
divisible_by = (2..9).select {|y| x%y==0}
puts "#{x}: #{divisible_by.join(", ")}"
end