为什么红宝石循环不会退出

时间:2015-02-28 15:22:53

标签: ruby do-while

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

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

puts "program end"

程序一直要求put“插入一个整数.5结束”即使我插入5

与循环做同样的故事

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"

2 个答案:

答案 0 :(得分:4)

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"或将字符串转换为整数。

答案 1 :(得分:2)

gets.chomp会返回String,因此i永远不会等于5Fixnum。您需要将其转换为整数:

i = gets.chomp.to_i