3
respostas

dúvida sobre o '''continue'''

boa noite, eu não entendi bem esse conceito de utilizar o continue.

ele "desconsidera" a interação e pula para próxima ou ele repete a instrução e só passa para próxima iteração quando o if assumir valor lógico True, é isso ?

segue meu código:

print("-=" * 20)
print("Bem vindo ao jogo da Advinhação!")
print("-=" * 20)

num_secreto = 17
cont = 1
while cont <= 5:
    print(f'Tentativa {cont} de 5.')
    num = int(input("Digite um número entre 1 e 100: "))
    print(f'Você digitou o número {num}.')

    if num < 1 or num > 100:
        print("Cuidado! Você deve digitar um número entre 1 e 100!")
        continue

    teste = num == num_secreto
    maior = num > num_secreto
    menor = num < num_secreto

    if teste:
        print("WIIIIIN, você acertou!")
        break
    else:
        print("LOSEEER, você errou!", end='')
        if maior:
            print("Seu chute foi maior que o número sorteado.")
        elif menor:
            print("Seu chute foi menor que o número sorteado.")
    cont += 1

print(f'Fim do programa.')

por exemplo se enquanto eu não digitar um número entre 1 e 100 ele não passa para próxima tentativa/iteração, na aula eu tinha entendido que nesse caso ia ser desperdiçado um tentativa/iteração.

HELPPPPPPPPPPPPPPPP

3 respostas

Fala Ruan, tudo certo?

Quando o continue é executado, a iteração é finalizada, todo o código dentro do loop que fica abaixo dele não será executado e o loop irá para a próxima iteração.

No seu código o continue somente será executado quando a instrução if num < 1 or num > 100: for verdadeira.

O continue sempre passa para a próxima iteração independente do resto da lógica e ele não muda a quantidade de iterações do loop.

Abraço

Justamente era isso que eu tinha entendido, porém ao rodar esse meu código não foi isso que aconteceu, só foi dado o próximo passo quando eu digitei um número entre 1 e 100, pode me dizer por que ?

Ruan,

A condição do execução do seu while é cont <= 5, ou seja, "faça enquanto cont <= 5", sua variável cont só está sendo incrementada na última linha dentro do while e somente será incrementada quando você digitar um número entre 1 e 100. A sua condição faz o número de iterações ser alterado, não o continue.

Faça um teste se ao invés de você usar o while, use um for com uma quantidade determinada, exemplo 5. Com ou sem continue serão 5 iterações:

for i in range(5):
    print('hello')

Abraço