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

for i in range(1,8): if(i == 5):

 for i in range(1,8):
    if(i == 5):
        continue
    print(i)

porque pula o 5?? nao tem nenhum comando dentro do 'if' para que pule, somente a condicional. Ou depois do continue os comandos seguintes se comportam como else?

4 respostas

Taissa, quando i for igual a 5, o comando continue ignora as instruções abaixo dele (no seu caso, ignora o comando print(i)) e itera (incrementa) o i do laço for.

Assim, ele imprime os números 1, 2, 3 e 4, quando i for igual a 5, ele vai entrar no if e vai satisfazer a condição i == 5, daí vai executar o continue (ignorar as instruções abaixo e incrementar o i do laço for), daí você receberá como resultado, uma lista sem o 5.

Espero ter ajudado.

Se tiver em dúvida, é só avisar.

Entao o continue volta para o inicio do loop, nao le as linhas seguintes como o print?

Isso, Taissa, ele vai para o início do bloco do loop com o próximo valor (nesse caso, 6)

solução!

Exato, Taissa!

Quando o for encontra um continue, ele interrompe a execução naquele ponto, não lê o que vem abaixo (até o fim do laço - nesse caso, o fecha chaves } ) e volta pra incrementar o for e repetir a instrução.

Nesse teu caso, até valer 4, ele seguiria normal. Depois, quando valesse 5, ele iria entrar no if e encontrar o continue, daí, o continue ia desprezar as linhas abaixo (o comando print(i)), voltar pro for, e tudo seguirá como se ele tivesse executado as linhas abaixo do continue (o comando print(i)) normalmente (mas ele pula todas elas). Já quando valesse 6, não entraria mais no if e, consequentemente, não executaria mais o continue e imprimiria os demais números.

Ficou mais claro agora? :)