ruby不会打印输出

时间:2013-10-08 23:19:39

标签: ruby for-loop while-loop

我正在尝试查看用户是否输入了素数。我希望它能在屏幕上打印“PRIME”或“NOT PRIME”:

prime = ""
puts "TYPE IN A NUMBER TO SEE IF IT'S PRIME: "
gets.chomp(prime).to_i
for divide_by in 2..(prime.to_i - 1)
    if prime % divide_by == 0
        puts "NOT PRIME!!!"
else
    puts "PRIME!!!"
end
end

我应该使用while循环吗?

1 个答案:

答案 0 :(得分:0)

您的gets.chomp(prime).to_i没有做任何重大事情。我不明白chomp这里的目的,也没有分配任何变量。如果您希望将输入号码设为prime,则需要执行prime = gets.to_i

完成此操作后,您无需像to_i那样再次for divide_by in 2..(prime.to_i - 1)

此外,你的逻辑是有缺陷的。如果prime不能被2整除,那就足以说"PRIME!!"了吗?我不这么认为。

如果您想知道要使用什么类型的循环,for循环很少有用。您应该使用each