以下はCodeacademy.comからのコードです。理解できないことがあります。ループを繰り返すたびにis_primeの値が変わらないのはなぜですか。たとえば、数値8をテストすると、ループの結果、値2と3ではis_primeがfalseになりますが、4ではfalseになります(4で除算できるため)。ただし、5、6、および7の場合も同様です。では、ループの最後で、5、6、および7の後で値がfalseのままになるのはなぜですか?
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)