Estruturas de Repetição
Imagine que precisássemos calcular a temperatura média de um mês. Com o conhecimento atual precisaríamos ler a temperatura de cada dia (seriam 30 dias), somar todos os valores e dividir por 30. A construção do diagrama seria bastante trabalhosa!
Para os casos (e outros também!), onde necessitamos repetir um determinado conjunto de instruções, usaremos comandos apropriados para isso.
Contamos com 3 tipos de estrutura de repetição: Controle Inferior, Controle Superior e Para.
Em resumo, estruturas de repetição permitem que o programa execute determinadas instruções diversas vezes, sendo que a quantidade de vezes que isso ocorre é controlada por uma operação condicional.
Em C, temos os comandos do-while, while e for.
Contador
Muitas vezes, precisamos contar alguma coisa em nossos programas. Quando necessitamos deste tipo de construção, usamos as variáveis contadoras.
Para isso, precisamos criar uma variável, iniciá-la com o valor 0 (zero) e “contar” toda a vez que precisarmos.
Acumulador
Além de contar, ás vezes precisamos realizar a somatória de uma lista de valores. Quando necessitamos deste tipo de construção, usamos as variáveis acumuladoras.
Uma variável acumuladora é muito parecida com uma variável contadora. A diferença é que ao invés de somarmos um valor fixo, somamos o valor de uma variável, obtida de uma fonte externa.
Controle na parte inferior do laço: Do-While
A estrutura de repetição com controle na parte inferior do laço é usada quando queremos executar um conjunto de instruções ao menos uma vez e depois avaliar se a execução continuará a ser executada.
Para esta estrutura, ao final do laço, usaremos uma decisão para avaliar se a execução continuará. Por convenção, sempre que a condição for VERDADEIRA o conjunto de instruções do laço será executado novamente. Quando a condição for FALSA, o programa continuará a execução a partir da instrução seguinte da condição.
Comando do-while
É iniciado pela palavra-chave do, seguida da instrução que poderá ser executada várias vezes e termina com a palavra-chave while em conjunto com a condição de controle da repetição entre parênteses. Enquanto a condição de controle for verdadeira, a instrução será executada.
O do-while pode conter uma única instrução terminada por ponto-e-vírgula, ou várias instruções entre chaves (bloco).
Sintaxe
Exemplo: do-while
Escreva um programa que calcule o novo salário um funcionário segundo as regras: se o salário for menor que R$1.000,00, aumento de %7, caso contrário, aumento de 5%. No final, o programa deve questionar se o usuário deseja realizar o cálculo para outro salário.
Link no Github para exemplo: exemplo_dowhile01.c
Controle na parte superior do laço
Na estrutura de repetição com controle na parte superior do laço a decisão sobre a repetição vem antes do conjunto de instruções. Desta forma, diferentemente do que acontece com a estrutura com controle na parte inferior, o conjunto pode nem ser executado.
Por convenção, sempre que a condição for VERDADEIRA o conjunto de instruções do laço será executado. Quando a condição for FALSA, o programa continuará a execução a partir da instrução seguinte, fora do laço. Esta estrutura é a mais versátil de todas. Com ela podemos representar o comportamento das outras duas estruturas.
Comando while
Iniciada pela palavra-chave while acompanhada da condição de controle, seguida da instrução que poderá ser executada várias vezes. Enquanto a condição de controle for verdadeira, a instrução será executada.
O while pode conter uma única instrução terminada por ponto-e-vírgula, ou várias instruções entre chaves (bloco).
Sintaxe
Exemplo: while
Escreva um programa que leia a temperatura dos 7 dias de uma semana e no final exiba a média de temperatura da semana.
Link no Github para exemplo: exemplo_while01.c
Novos Operadores Aritméticos
Existem alguns outros operadores que ajudam a deixar o código menor e mais elegante quando trabalhamos com contadores e acumuladores.
Exemplo: Novos Operadores
Reescreva o exemplo anterior, utilizando, onde for possível, os novos operadores aritméticos apresentados.
Link no Github para exemplo: exemplo_novosoperadores.c
Estrutura de repetição Para – for
A forma mais comum de repetição é quando temos uma quantidade fixa de vezes para executar algo. Calcular a temperatura média de uma semana, achar o maior aluno de uma classe de 50 alunos, etc. Para este tipo de problema, temos a estrutura de repetição FOR.
Com ela, podemos sintetizar esta tarefa, definindo um número determinado de repetições que nosso laço terá.
Comando for
Iniciada pela palavra-chave for acompanha de três expressões separadas por ponto-e-vírgula entre parênteses. Na primeira temos a inicialização, na segunda o teste para controle e por último o incremento ou passo. Enquanto o teste for verdadeiro, a instrução será executada.
O for pode conter uma única instrução terminada por ponto-e-vírgula, ou várias instruções entre chaves (bloco).
Sintaxe
Exemplo: for
Reescreva o exemplo anterior, trocando o comando while pelo comando for.
Link no Github para exemplo: exemplo_for01.c
Comandos break e continue
O comando break causa a saída imediata de uma estrutura de repetição, após a saída, o controle passa para a próxima instrução após a estrutura de repetição. Este funcionamento é parecido com o break visto na estrutura de decisão switch.
O comando continue, transfere o controle da execução para o início da estrutura de repetição, desta forma, força uma nova iteração.
Estes dois comandos, quando usados, devem estar dentro do corpo da estrutura de repetição.
Observação: Conteúdo do material desenvolvido pelo Professor César Tofanini, adaptado pelo Professor Rodrigo Saito