下面是来自 Codeacademy.com 的一些代码。有一点我不明白:为什么 is_prime 的值不会随着循环的每次迭代而改变?例如,测试数字 8,可能是循环导致 is_prime 对于值 2 和 3 为假,但对于 4,它变为假(因为您可以除以 4)。但是,对于 5,6 和 7,它又是真的。那么为什么在循环结束时,即使在 5,6 和 7 之后,该值仍保持为假,这会使它再次为真?
def prime(n)
puts "That's not an integer." unless n.is_a? Integer
is_prime = true
for i in 2..n-1
if n % i == 0
is_prime = false
end
end
if is_prime
puts "#{n} is prime!"
else
puts "#{n} is not prime."
end
end
prime(2)
prime(9)
prime(11)
prime(51)
prime(97)