Enviar um café pro programador

Intruções ELSE, BREAK e CONTINUE em Laços

Neste tutorial de Python, vamos falar de algumas instruções muito importantes sobre laços: BREAK, CONTINUE, PASS e ELSE.

Instrução ELSE em Python

Já falamos da instrução ELSE em Testes Condicionais do tipo IF ELSE ELIF.
Essa instrução, embora não seja muito famosa, também existe junto com o laço WHILE.



Sua estrutura é a seguinte:

while TESTE:
    codigo
    codigo
    ...
else:
    codigo
    ...

A lógica do ELSE junto com o WHILE é bem simples: assim que sai do laço WHILE (sem ser via instrução BREAK), o código dentro da instrução ELSE será executado.

Ou seja, enquanto o TESTE for verdadeiro, ele roda o código dentro do WHILE.

Quando a condição vira falso, e não se usa uma instrução BREAK, o código do ELSE será executado (com uma mensagem de saída, de desligamento de sistema, por exemplo).



Instrução BREAK em Python

Outro comando muito importante e usado em laços Python, é o BREAK, que significa 'quebrar', 'interromper', 'pausar'. E é isso que faz.




while TESTE:
    codigo
    if TESTE2:
       break;
    ...

A função do BREAK é simplesmente parar o looping.
Se fizer um teste, ele der positivo e você usar a break, o laço é automaticamente findado.


Instrução CONTINUE em Python

Na instrução BREAK, quando ela é executada, tudo para, tudo acaba, adeus laço, adeus WHILE, adeus FOR, termina ele.




Se ao invés de break usar continue, o laço não é terminado. Porém, ele pula do continue pro início do laço, tudo que tem ali em diante do continue não é mais executado.

Exemplo de Código Python

A instrução pass é muito utilizada quando queremos um código vazio, uma instrução vazia, sem fazer nada de específico.

O código a seguir é um looping infinito, roda eternamente, esse código só vai parar de executar se você digitar CONTROL + C

while 1:
    pass

Exercício Resolvido de Python

Escreva um programa em Python que vai somar todos os números de 1 até 1 milhão, menos os que são múltiplos de 3.

A soma total ficará armazenada em total.
Vamos percorrer todos os números de 1 até 1 milhão, quem vai assumir todos esses valores é a variável count, nosso contador.

Primeiro incrementamos nosso contador. Ele começa em 0 e logo vira 1.
Agora, vamos fazer um teste para saber se o valor de count é múltiplo de 3.

Se for múltiplo de 3, damos uma instrução continue e o loop for segue para o próximo elemento, nada é feito, pulamos para a próxima iteração.

Caso não seja múltiplo de 3, vamos somar esse valor do contador na variável total.

Prontinho, nosso programa percorre de 1 até 1 milhão e soma tudo que não for múltiplo de 3:

total=0

for count in range(1000000):
    count += 1
    if(count % 3 == 0 ): continue
    total += count
    
print(total)


5 comentários:

  1. #Minha solução...

    total=0

    for count in range(1000000):
    count+=1
    if count%3==0:
    continue
    else:
    total+=count
    print(total)

    ResponderExcluir
  2. O que aconteceria se no código do exercício resolvido, não se usasse o continue depois do "if (count % 3 == 0)"?

    ResponderExcluir
  3. o else executa só uma vez quando ta ligado ao while?

    ResponderExcluir
  4. como eu faço caso eu queira executar uma função e se um if for verdadeiro eu queira retornar ao início dela, posso usar continue? um exemplo:
    def number(numero):
    texto1 = result_text.get()
    time.sleep(3)
    texto2 = result_text.get()
    if texto1 == texto2:
    pass
    else:
    continue #caso eu queira reiniciar a função voltando à primeira chamada.

    ResponderExcluir