Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Loop do - Aula 6

Olá

gostaria de proteger a função pede_dificuldade de forma que o usuário ao entrar com um número maior que 5 apareça uma mensagem de erro e peça novamente para que insira a dificuldade.

Estou tentando fazer isso com um loop do, porém ao entrar com um número maior que 5 aparece a mensagem de erro, mas ao entrar com um número de 1 a 5 entro em um loop infinito.

Como soluciono?

Outra dúvida, na verdade precisaria ser um teste em que só aceite a entrada de uma variável de valor entre 1 e 5. Qualquer outro valor deve aparecer uma mensagem de erro! Como faço isso?

Abaixo o código que fiz.... eu sei que está errado, mas não estou conseguindo pensar em nada melhor...

def pede_dificuldade
    puts "Qual o nível de dificuldade?"
    puts "(1) Muito fácil (2) Fácil (3) Normal (4) Difícil (5) Impossível"
    puts "Escolha: "
    loop do
        dificuldade = gets.to_i
           if dificuldade > 5
            puts "A dificuldade deve ser inserida em um número de 1 a 5. Escolha novamente:"
        end
    end
    dificuldade = gets.to_i
end
1 resposta
solução!

Oi Paulo, vc precisa usar um break para quebrar seu loop no caso do atendimento de alguma regra...