【发布时间】:2014-05-05 23:39:06
【问题描述】:
我正在尝试用 Ruby 编写“Eratosthenes 筛”,但在第二个“while”循环中遇到了困难。我想测试一下是否integers[j] % integers[0] == 0,但是编译器在这一行一直给我一个nil:Nil Class 错误。我无法弄清楚问题所在。
n = gets.chomp.to_i
puts
while n < 2
puts 'Please enter an integer >= 2.'
puts
n = gets.chomp.to_i
puts
end
integers = []
i = 0
while i <= n - 3
integers[i] = i + 2
i += 1
end
primes = []
j = 1
while integers != []
primes.push integers[0]
while j <= integers.length
if integers[j] % integers[0] == 0
integers.delete(integers[j])
end
j += 1
end
integers.shift
j = 1
end
puts integers
puts
puts primes
提前感谢您的帮助!
【问题讨论】:
-
你有什么问题?
-
对不起,如果我不清楚,但我的问题是:为什么我会收到以下错误:'no method '%' for nil:Nil Class' on the line: if integers[j] % 整数[0] == 0 ?
-
请尝试使用
{}按钮格式化代码。这是火车残骸。 -
抱歉,这是我第一次发帖...谢谢您的建议。