Comando de repetição: while

Tópicos

Ao final dessa parte do curso você deverá saber:

  • utilizar comandos de repetição na resolução de problemas computacionais;

  • definir condições, com valores iniciais e de parada, para o comando while;

  • simular o processamento do comando while.

Introdução

O comando de repetição while (= enquanto) permite repetir instruções enquanto uma condição for verdadeira. Para utilizar o comando corretamente você precisa:

  • inicializar as variáveis de controle antes do comando;

  • criar uma condição que usa a variável de controle e se mantenha verdadeira pelo número correto de iterações;

  • modificar a variável de controle para garantir a terminação; e

  • realizar as computações sucessivas para se chegar a resposta correta.

Sintaxe do comando while

A sintaxe do comando while é a seguinte:

while condição:
    # sequência de comandos executados no corpo do while
    comando_1
    comando_2
    ...
    comando_n

A condição é em geral definida na forma de uma expressão lógica. O resultado de uma expressão lógica é sempre True ou False.

A sequência de comandos comando_1, comando_2, …, comando_n pode conter qualquer comando do Python como atribuição, entrada ou saída, e outros, até mesmo outro while.

Nota sobre Programação Estruturada

Uma característica importante do Python é que ele força a estruturação do programa em blocos que podem ser facilmente visualizados pela tabulação. Observe que os comandos dentro do while, ou seja, os comandos <comando_1> a <comando_n>, precisam ser deslocados, ou seja, devem começar em uma coluna deslocada para a direita do while. Caso existam comandos a serem executados após o while terminar, esses comandos devem ser escritos usando a mesma tabulação (na mesma coluna) que o while.

Descrição do fluxo do programa

O comando while repete a sequência de comandos definida em seu corpo enquanto a condição permanecer verdadeira.

Quando o comando while é executado, a condição é testada e, caso verdadeira, o seu corpo é executado um comando de cada vez, ou seja comando_1 primeiro, depois o comando_2, até o comando_n. Após a execução do comando_n a condição volta a ser testada e, caso verdadeira, o processo se repete. O while termina quando, ao testar a condição, o resultado do teste for False.

Exemplo

Observe o fluxo do programa abaixo, executando-o passo-a-passo:

CodeLens: (Exemplo_de_while)

Esse programa imprime os números de 1 até fim. Procure entender bem as partes desse programa:

  • inicialização das variáveis antes do while

  • condição do while, que define o número de iterações

  • atualização da variável de controle, que garante o fim do while.

Nota sobre Simulação de um Programa

Os programas em Python são constituídos por comandos executados um de cada vez, passo-a-passo. Saber simular um programa é uma habilidade muito importante para entender o que um programa faz, encontrar problemas (bugs) e testar soluções.

Para simular um programa você deve primeiro definir um teste, ou seja, você precisa definir uma entrada e a correspondente saída esperada pelo programa. A “saída” não precisa ser algo impresso mas pode ser uma certa configuração de valores de variáveis. Durante uma simulação devemos executar cada comando e verificar se a evolução dos valores das variáveis está correta.

Ferramentas como o codelens ajudam, mas você deve aprender a simular um programa manualmente, sem o auxílio de um computador.

Exercícios

Exercício 1

Dada uma sequência de números inteiros diferentes de zero, terminada por um zero, calcular a sua soma. Por exemplo, para a sequência:

12   17   4   -6   8   0

o seu programa deve escrever o número 35.

Tente escrever a sua solução primeiro e, depois, clique aqui para ver uma.

Exercício 2

Exercício 4 da lista sobre inteiros.

Dados números inteiros n e k, com k >= 0, calcular n elevado a k. Por exemplo, dados os números 3 e 4 o seu programa deve escrever o número 81.

Tente escrever a sua solução abaixo primeiro e, depois, clique aqui para ver uma.

Exercício 3

Exercício 8 da lista sobre inteiros.

Dado um número inteiro n >= 0, calcular n!.

Tente escrever a sua solução abaixo primeiro e, depois, clique aqui para ver uma.

Exercício 4

Exercício 9 da lista sobre inteiros.

Dados números inteiros n, i e j, todos maiores do que zero, imprimir em ordem crescente os n primeiros naturais que são múltiplos de i ou de j e ou de ambos.

Por exemplo, para n = 6, i = 2 e j = 3 a saída deverá ser:

0   2   3   4   6   8

Clique aqui para ver uma solução.

Exercício 5

Exercício 12 da lista sobre inteiros.

Dados dois inteiros positivos calcular o máximo divisor comum entre eles usando o algoritmo de Euclides.

Clique aqui para ver uma solução.

Para saber mais

Next Section - Execução condicional e alternativas: if, if-else e if-elif-else