为什么 ruby 循环不退出

why ruby loop does not exit

我正在尝试编写一个在整数变量的特定值处退出的循环。

i=2
while i != 5 do
    puts "insert an integer. 5 to end"
    i = gets.chomp
    puts "you entered #{i}"
end

puts "program end"

即使我插入了 5

,程序仍然要求输入 "insert an integer. 5 to end"

与循环do相同的故事

i=2
loop do 
  puts "insert an integer. 5 to end"
    i = gets.chomp
    puts "you entered #{i}"
  break if i == 5
end 
puts "program end"

gets.chompreturns一个String,所以i永远不等于5,一个Fixnum。您需要将其转换为整数:

i = gets.chomp.to_i
i=2
while i != "5" do
    puts "insert an integer. 5 to end"
    i = gets.chomp
    puts "you entered #{i}"
end

puts "program end"

您从用户那里得到一个字符串,因此 i != 5 总是计算为 false。您可以将其转换为 i != "5" 或将您的字符串转换为整数。