Estruturas de Repetição em Java e C/C++

Veja neste artigo as estruturas de repetição que temos nas linguagens Java e C/C++

Disciplinas: Algoritmos, Programação Orientada a Objetos e Algoritmos e Programação de Computadores

O objetivo deste artigo é passar pelas estruturas de repetição nas linguagens Java e C/C++, uma vez que os comandos são iguais para as duas linguagens, só mudando os comandos de entrada e saída. Estruturas de repetição são blocos de comandos que são repetidos diversas vezes de acordo com determinadas condições.

  • Uma estrutura de repetição é um fluxo de controle utilizado para decidir quantas vezes determinado conjunto de comandos se repetirá dentro do programa.
  • Uma estrutura de repetição determina qual conjunto de comandos ou bloco será executado após uma condição ser avaliada.
  • Enquanto esta condição estiver retornando verdadeiro, o conjunto de comandos será executado, parando somente quando o resultado da avaliação da condição for falsa.

Nas linguagens Java e C/C++, temos as seguintes estruturas de repetição: for, while e do… while.

 

  1. For
  • Uma estrutura de repetição for pode ser utilizada quando o algoritmo precisa ter definido a quantidade de vezes que um conjunto de comandos deve ser executado.
  • Neste caso, a variável de controle, sua inicialização e finalização bem como sua atualização fazem parte do cabeçalho da estrutura de repetição for e o conjunto de comandos dentro da estrutura é executado a quantidade de vezes determinada no cabeçalho desta estrutura.
  • Note que nesta estrutura de repetição, pode ocorrer do conjunto de comandos não ser executado nenhuma vez.

Exemplo da estrutura for:

Vamos supor que queremos somar 10 números inteiros digitados pelo usuário, e mostrar o total da soma e a média dos números digitados.

 

ExemploFor

Figura 1. Exemplo de for

 

Vemos neste exemplo o cabeçalho da estrutura for na linha 6. O cabeçalho se divide em três partes. A primeira parte é a inicialização da variável de controle i. É essa variável que controlará a quantidade de vezes que o bloco de comandos será executado. Na segunda parte está a condição para que o bloco de comandos seja executado. O bloco será executado sempre que essa condição (i < 10) for verdadeira. Na terceira parte encontra-se o incremento da variável de controle (i++ ou seja, i = i+1).

Nas linhas 7 e 8 está o bloco de comandos que será executado tantas vezes quanto a condição for verdadeira.

No exemplo da figura 1 foram digitados os números de 1 a 10. Dentro da estrutura os números foram somados e guardados na variável soma. Após a estrutura de repetição foi calculada a média dos números digitados, e em seguida apresentados os resultados da soma e da média. Veja abaixo o mesmo exemplo na linguagem C/C++.

ExemploForC

Figura 2. Exemplo de for em C/C++

Segue abaixo o teste de mesa do exemplo.

TesteMesaFor1

Figura 3. Teste de Mesa

O objetivo do teste de mesa é testar o algoritmo para verificar se está correto. A ideia é seguir os passos do programa como se estivesse executando.

 

  1. While

 

A estrutura while tem a mesma finalidade da estrutura for, com algumas características diferentes. O while não tem um cabeçalho como na estrutura anterior. Portanto, a inicialização da variável de controle deve ser feita antes da estrutura. E também o seu incremento deve ser feito após a execução do bloco de comandos e antes de fechar a chave da estrutura. Segue abaixo, o mesmo exemplo utilizando o while.

ExemploWhile

Figura 4. Exemplo de while.

No mesmo exemplo utilizando a estrutura while, verificamos que na linha 6 está a inicialização da variável de controle i. E na linha 10 está o incremento da variável (i++).

Percebemos, então, que o que fazemos com o for podemos fazer também com o while. Mas ambos têm as suas características bem peculiares. Quando sabemos qual a melhor estrutura para utilizar? O for é a melhor estrutura quando sabemos a quantidade de vezes que os comandos serão executados. Por exemplo, se quero somar 10 números, eu sei que será executado 10 vezes, tendo a variável i iniciando do 0 e terminando quando i chegar a 10. Veja abaixo o mesmo exemplo em C/C++.

ExemploWhileCFigura 5. Exemplo de while em C/C++

Mas e se eu quiser que o usuário vá digitando vários números inteiros para somar, e só parar quando digitar 0? Neste caso o while é mais apropriado. Segue abaixo um exemplo.

ExemploWhile2

Figura 6. Exemplo de while 2

Neste exemplo, a variável de controle não é mais o i, mas o número que está sendo digitado. Enquanto não digitar 0 o laço não encerrará. Nem precisaria do i se eu não quisesse calcular a média. Percebe-se que o while já inicia verificando se o n é diferente de zero. Então há a necessidade de atribuir um valor a esse variável, desde que não seja zero. No exemplo acima foram digitados os números 10, 15, 7 e 0.

ExemploWhile2C

Figura 7. Exemplo de while 2 em C/C++

Do … While

A estrutura do…while também tem a finalidade de repetir os comandos dentro de sua estrutura. A diferença entre esta e as outras estruturas vistas é que o teste da condição é feito ao final dos comandos. Segue abaixo o mesmo exemplo com a estrutura do…while.

ExemploDoWhile

Figura 8. Exemplo de do…while

Neste caso não há a necessidade de inicializar a variável n. A diferença básica entre o do…while e os dois anteriores é que, pelo menos uma vez o bloco de comandos é executado, pois a condição é testada após a execução dos comandos. Veja abaixo o exemplo em C/C++.

ExemploDoWhileCFigura 9. Exemplo de do..while em C/C++

  1. Controle dos laços

 Apesar dos laços terem a sua condição de parada, que é quando a condição testada for falsa, podemos utilizar alguns comandos para interromper essa iteração. Segue abaixo:

  • break

O break quebra o laço antes que a condição seja satisfeita. Por exemplo, no exemplo acima eu poderia verificar se o n é igual a 0. Se acaso positivo, dou um comando break. Este comando simplesmente interrompe o laço naquele momento.

  • continue

O comando continue interrompe a iteração em que está e continua o laço. Por exemplo, no programa anterior, vamos supor que eu quero somar todos os números digitados menos o número 10. Eu posso verificar se n é igual a 10. Se for, dou o comando continue antes de somar.

 

Conclusão

 

Nesse artigo mostramos as estruturas de repetição e suas particularidades nas linguagens de programação Java e C/C++. O mais importante no aprendizado de qualquer linguagem de programação é exercitar bastante o que aprendemos. Programação se aprende com bastante exercício e bastante prática. Bons estudos!

Sobre perini

José Carlos Perini publicou 50 posts no seu blog.

Professor universitário Faculdade Metrocamp e People Computação Oracle Certified Professional, Java SE 6 Programmer

You can leave a response, or trackback from your own site.

Leave a Reply