ESTRUTURAS DE

REPETIÇÃO I

Desvios em Loop

Na unidade anterior, você estudou as Estruturas de Decisão, também conhecidas por desvios condicionais.

Além dos desvios condicionais, é possível criar desvios em loop ou repetição, ou seja, repetir trechos do algoritmo sob determinada condição e controlar a forma com que serão executados. Nesta unidade você conhecerá a primeira Estrutura de Repetição, o comando para...fim-para. Na próxima unidade você conhecerá outros dois laços. Preparado?

Laço de Repetição “para...fim-para”

Para iniciar seus estudos, assista à videoaula do professor Anderson Oliveira, que apresenta esse Laço de Repetição.

Você viu que o comando “para...fim-para” permite que uma variável realize a contagem do número de repetição a executar, conforme a indicação inicial e final dessa contagem e, também, indique o formato em que essa tarefa será realizada. Observe o quadro a seguir e veja as sintaxes em pseudocódigo e em Java, perceba como são parecidas:

PSEUDOCÓDIGO FLUXOGRAMA JAVA
Para {variável} = <valor inicial>
      até <valor final>
      passo <argumento>
      faça {comando(s)}
fim-para
                  
for (int i=0; i<10; i++){
    System.out.println(i);
}
                  

Observe que no Fluxograma aparece a palavra contador e tanto no Pseudocódigo quanto no Java não aparecem. Calma! O contador está lá, porém de outra forma. Veja que no Pseudocódigo há {variável} e no Java aparece i. Ambos são os contadores que aparecem no Fluxograma.

Conhecendo um exemplo

A execução é muito fácil. Para facilitar a compreensão, veja um exemplo de um programa que mostra ao usuário os números de 0 a 9 na tela:

PSEUDOCÓDIGO FLUXOGRAMA
Programa mostrar números de 0 até 9
Declare
        contador como inteiro
Início
    contador <- 0;
        Para contador de 0 até 9 passo 1 faça
        Escreva (contador)
        Fim para
Fim.
                  

Apenas para você entender melhor, o pseudocódigo inicia-se com a declaração da variável contador com tipo de dados inteiro, ou seja, esta variável irá receber apenas números inteiros. Após a leitura desta variável, iniciada com o valor 0, ocorre o incremento de mais 1 por meio da instrução passo até o valor 10. Esse tipo de estrutura de repetição pode ser usado toda vez que houver a necessidade de repetir trechos finitos, em que se conhece os valores inicial e final.

Dessa forma serão impressos os números de 0 a 9, isso porque a condição é que o contador seja menor que 10 (contador < 10).

No exemplo anterior, tanto no Pseudocódigo quanto no Fluxograma, não fazemos a contagem até o número 10. Por que? Você estudou em unidades anteriores os operadores (aritméticos, comparação e lógicos), então é momento de retomar conceitos.

Observe que a condição apresentada no exemplo é:

  • Pseudocódigo: Para contador ← 0 até 09.
  • Fluxograma: contador < 10.

Isso porque de 0 até 9, temos 10 contagens:

Quando o contador está em 0, temos a 1ª contagem (o programa realiza o trecho do algoritmo pela 1ª vez)

Quando o contador está em 1, temos a 2ª contagem.

Quando o contador está em 2, temos a 3ª contagem.

E assim sucessivamente, até que, quando o contador chega em 9, o programa estará contando pela 10ª vez.

Se estivéssemos usando o operador <= (igual) em lugar de < (menor), então o programa totalizaria 11 contagens.

Veja agora o código em Java:

      package lacos;
      import javax.swing.JOptionPane;
      public class lacofor {
          public static void main(String[] args){
              //declaração das variáveis.
              int i; //variável que será utilizada para o laço de repetição

              for (i=0; i<10; i++){
              JOptionPane.showMessageDialog(null, i); // saída de dados.
              } // fecha o laço de repetição for.

          } // fecha o método.

      } // fecha a classe
    

Correspondendo ao Pseudocódigo informado anteriormente, no Java, são declaradas as variáveis que serão utilizadas. Neste caso, apenas o i como inteiro. Em seguida, inicia-se o laço de repetição for com a variável inicial 0 (zero), variável final 9 (nove) e o incremento com 1. Ou seja, o resultado irá mostrar as sequências dos números 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.

Exercitando o Laço de Repetição "para...fim-para"

Agora, pense: como poderíamos elaborar um programa utilizando a estrutura para...fim-para e que mostre ao usuário os números de 01 até 10 na tela?

Reflita e busque resolver essa questão antes de visualizar a solução.

Solução

O Laço de Repetição “para...fim-para” é muito simples e fácil de usar. Porém se você quiser incrementar o seu uso, é possível utilizá-lo junto com a estrutura “se... senão...fim_se”.

Exercitando os Laços de Repetição e de Decisão

Agora, imagine que você precise calcular a média de 30 alunos e informar a situação de cada um deles. Ou seja, além de calcular e mostrar a média, o programa deverá e indicar se cada um dos 30 alunos está "Aprovado" ou "Reprovado".

Reflita e busque resolver essa questão antes de visualizar a solução.

Solução

Repare que estamos utilizando diversos conceitos aprendidos nas unidades anteriores, ou seja, tudo que você está estudando é acumulativo. Procure utilizar todos os conceitos estudados para realizar um melhor programa que solucione o problema.

Teste de Mesa

Para que possamos nos certificar de que o algoritmo realizado está correto, antes de passar para a linguagem de programação (no nosso caso, Java) podemos testá-lo simulando valores e verificar se o resultado é o esperado. Esta simulação não é realizada no computador utilizando nenhum software, é realizada no papel. É muito simples: basta montar uma pequena tabela e começar a simular os valores utilizando o seu pseudocódigo.

Para exemplificar, vamos voltar ao primeiro algoritmo mostrado nesse material (Mostrar os números de 01 até 09 com passo 01) e aplicar o Teste de Mesa:

Revisando

Por fim, assista à videoaula do professor Rogério Silva, que retoma os conceitos que você estudou nessa unidade, especialmente o comando for().