Carregando...

Cortar o laço ou pular uma volta

break sai do laço na hora, mesmo com a pergunta ainda True. continue não sai. Ele pula as linhas abaixo dele, só nesta volta, e a pergunta é feita de novo. A página do while esperava a pergunta ficar False. print("done") está na mesma altura de while, portanto fora: corre uma vez depois de break, e uma vez quando o laço termina sozinho.

cups começa em 0 e a pergunta é cups < 5. Cada volta escreve o número primeiro. Quando o número é 2, break corre. cups = cups + 1 está abaixo de break, então não corre nessa volta. 2 ainda é menor que 5. A pergunta não falhou. O laço acabou mesmo assim.

Sair depois de escrever 2

python
cups = 0
while cups < 5:
    print(cups)
    if cups == 2:
        break
    cups = cups + 1
print("done")

Você vê 0, depois 1, depois 2, depois done. Não há 3 nem 4. cups guarda 2. Esse 2 foi escrito, e o laço saiu antes de o número avançar.

Pular uma volta e ficar no laço

continue só é seguro se o número avançar antes do pulo. Senão o valor que você quer pular fica parado, a pergunta continua True e o laço não termina. Aqui a primeira linha de dentro soma 1. Se o número for 2, continue pula o print desta volta. O laço volta a cups < 4. A volta seguinte leva o número a 3, e 3 é escrito.

Pular o 2 e seguir

python
cups = 0
while cups < 4:
    cups = cups + 1
    if cups == 2:
        continue
    print(cups)
print("done")

Você vê 1, depois 3, depois 4, depois done. A linha que falta é 2. done está aí porque continue não abandonou o laço. A pergunta falhou mais tarde, sozinha, e a linha de fora correu uma vez.

O mesmo break, agora antes de print

Ponha break acima de print. A volta que chega a 2 sai antes de escrever qualquer coisa. done continua correndo, porque está na altura de while.

Sair antes de escrever 2

python
cups = 0
while cups < 5:
    if cups == 2:
        break
    print(cups)
    cups = cups + 1
print("done")

Você vê 0, depois 1, depois done. cups é 2 de novo, mas dessa vez esse 2 não foi escrito. Os dois programas só diferem no lugar de break.

Se você escrever continue acima de cups = cups + 1, o pulo pode travar o número. cups fica no valor que você ia pular, a pergunta continua True e o laço não termina. Não execute essa ordem. Primeiro mova o número. Depois decida se esta volta pula as linhas sob continue.

break e continue são minúsculos. Break ou Continue com maiúscula é um nome que Python não conhece, e o programa para. A página seguinte numera cada item que percorre e pareia duas listas. Não usa estas duas palavras.

Calcule antes de executar

  1. O primeiro programa escreve e depois faz break quando cups é 2. O que aparece, e o que cups guarda depois?
  2. O programa do continue soma 1 antes de pular. Que números são escritos, e done aparece?
  3. O terceiro programa sai antes de print. O 2 está na tela?
  4. Você põe continue acima de cups = cups + 1, e o pulo continua valendo. O laço termina?

Onde o resultado muda

  • Ainda esperar cups < 5 falhar depois de já ter escrito break
  • Esperar 3 e 4 quando break já correu em 2
  • Pôr continue antes de o número avançar
  • Contar como executada uma linha que está sob break
  • Escrever Break ou Continue com maiúscula

Numa leitura

break sai na hora. A pergunta do while pode continuar True. Uma linha na altura de while corre, uma linha sob break não.
Se break está depois de print, você vê 0, 1, 2 e depois done, e cups fica em 2. Se break está antes de print, você vê 0, 1 e depois done, e cups continua 2.
continue só pula as linhas abaixo dele, nesta volta. Se o número avançou primeiro, você vê 1, 3, 4 e depois done, e o 2 não está.
Se o número não avança, continue pode deixar a pergunta True e o laço não termina.
A página seguinte numera cada item e pareia duas listas.

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
4
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo