Não consigo rodar um loop de repetição / I don't get do my repeat loop

Não estou conseguindo rodar esse loop, ele sempre está saindo do loop, como se eu tivesse digitado algo diferente de 1. O que tem de errado?

I don’t get to do this loop. Always finish the loop. What’s wrong?

i = 1
#for i in 1..10000000000000 do
while (i==1)
    print "ESTADO ATUAL: "
    puts $estadoatual
     


    puts "Proximo estado: parar, andar, levantar_cabeca, abocanhar "
    $temp = gets.chomp      # O QUE SIGNIFICA ESSE $ NA FRENTE NA VARIAVEL?????????? VARIAVEL GLOBAL.. CERTO?
    case
    when ($temp == "andar")
        andar()
    when ($temp == "parar")
        parar()
    when ($temp == "levantar_cabeca")
        levantar_cabeca()
    when ($temp == "abocanhar")
        abocanhar()
    else
        puts "Estado inválido!"

    end
 puts "Terminar? 1-Não  2-Sim"
     i = gets.chomp
  #   break if (i == 2)   #NÃO ESTÁ PARANDO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
end

$i = “1” # variavel global
$a = “1” # variavel global

while ($i==$a)

print "ESTADO ATUAL: "

puts "Proximo estado: parar, andar, levantar_cabeca, abocanhar "

$temp = gets.chomp # retorna string sem caracter especial de fim de linha

case
when ($temp == “andar”)
print "andar"
when ($temp == “parar”)
print "parar"
when ($temp == “levantar_cabeca”)
print "levantar a cabeca"
when ($temp == “abocanhar”)

else
    puts "Estado inválido!"

end

puts “Terminar? 1-Não 2-Sim”

$i = gets.chomp

end

i = 1
#for i in 1…10000000000000 do
while (i==1)
print "ESTADO ATUAL: "
puts $estadoatual

puts "Proximo estado: parar, andar, levantar_cabeca, abocanhar "
$temp = gets.chomp.to_i      # De fato o caracter $ é para definir variaveis globais
case
when ($temp == "andar")
    andar()
when ($temp == "parar")
    parar()
when ($temp == "levantar_cabeca")
    levantar_cabeca()
when ($temp == "abocanhar")
    abocanhar()
else
    puts "Estado inválido!"

end

puts "Terminar? 1-Não 2-Sim"
i = gets.chomp.to_i # É necessário converter para inteiro. Pois o gets.chomp é do tipo String. Logo seu break não iria parar.
break if (i == 2)
end