Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Usar "continue" mantendo o valor atual do For

Olá,

Por mera curiosidade, gostaria de saber se seria possível utilizar algum comando que fosse capaz de realizar a mesma função do continue, mas sem adicionar 1 ao iterador do "For"...

Ex: Se o input dado fosse um valor inválido, continuaria o loop, mas o valor do iterador não se alteraria, permitindo que a pessoa pudesse responder errado sem perder tentativas, seja na primeira ou enésima vez!

2 respostas
solução!

Não, na lógica proposta você está trabalhando com "Enquanto o valor for inválido", palavra chave: "enquanto", logo o ideal para se usar é o while...

Você pode adicionar um while dentro do for para prender a execução do programa em um loop até que o usuário digite um valor válido sem problemas, só precisa tomar cuidado para não criar um loop infinito, deve sempre checar se há uma quebra do loop no código :D

Muito boa solução, Thiago!

Apliquei um while que enquanto a condição errada for mantida, ele sempre solicitará um novo input e, uma vez que o novo input for correto, o loop será quebrado e será contabilizada a primeira tentativa...

for rodada in range(0,tentativas_totais):
        print("Você tem {} tentativas...".format(str(tentativas_totais-rodada)))
        tentativa_str = input("Digite o seu número entre 1 e 100 e, veja se acertou! ")
        tentativa_int = int(tentativa_str)

        print("Você digitou: ", tentativa_str)

        while(tentativa_int < 1 or tentativa_int > 100):
            print("Seu número deve estar entre 1 e 100")
            tentativa_int = int(input("Digite o seu número entre 1 e 100 e, veja se acertou! "))