Cursos / Jogos Digitais / Programação Estruturada / Aula

arrow_back Aula 05 - Comandos de iteração

1. Comandos de Iteração

No módulo Lógica de Programação e Algoritmos você já estudou sobre comandos de iteração, lembra? Agora, você vai estudar cada um deles aplicados na linguagem Java, sendo seus nomes for, while e do-while. E sempre que você tiver dúvida, releia, compare, releia aulas anteriores deste módulo ou de módulos anteriores, se precisar. E tire também suas duvidas na plataforma digital!

Comecemos então pelo termo iteração. O termo “iteração” significa “repetição”. Os comandos que você aprenderá nesta aula são utilizados em situações em que você precisa que o computador execute certos trechos de um programa de forma repetida — ou seja, várias vezes, até que uma determinada condição seja alcançada. Alguns autores chamam essas estruturas de “laços de repetição” ou, em inglês, de loops.

Você perceberá que cada um dos comandos de iteração disponíveis na linguagem Java são de maneira geral equivalentes, mas cada um deles pode ser utilizado mais facilmente em situações específicas. Então, fique atento para saber fazer a escolha de quando utilizar cada um deles.

2. O Laço for

O primeiro comando de iteração que você irá aprender é o laço for. Imagine se você precisasse imprimir os números de 1 a 10, como você faria? Uma possibilidade é escrever o seguinte código:

Existem, porém, dois problemas nessa solução. A primeira é que há uma duplicação de código onde comandos similares são usados para imprimir na tela várias vezes, mudando apenas o valor passado como parâmetro. O segundo problema é que esse código tem um comportamento fixo, ou seja, não é possível escolher a quantidade de vezes que o comando de imprimir na tela será executado depois que o código for compilado e estiver em execução. Deve haver uma forma de receber do usuário um número positivo N e imprimir de 0 (zero) até esse número N.

Para evitar duplicação de código e para permitir que seja configurável, em tempo de execução do programa, a quantidade de vezes na qual o comando vai ser executado, usamos os chamados comandos de iteração (laço). O primeiro comando que veremos aqui é o comando for. Veja como funciona o mesmo código agora implementado com esse comando de iteração:

Note que o programa ficou bem mais enxuto em termos de número de linhas de código, certo? Vamos agora entender como funciona esse código mostrado. Para isso, observemos primeiro o formato geral do laço de iteração for em Java, o qual é o mesmo encontrado em diversas outras linguagens de programação:

Note que ele começa com uma seção chamada de inicialização. Essa seção de código é geralmente utilizada para declarar uma variável que será utilizada como variável de controle de execução do laço. No exemplo mostrado do ProgramaFor, temos o seguinte código de inicialização:

Observe que essa variável está sendo declarada e inicializada ao mesmo tempo. Depois da inicialização da variável, vem a seção de condição. Nessa condição, você deve colocar uma expressão que resulte no valor verdadeiro, enquanto for necessário executar o laço, e falso caso esteja na hora de pará-lo. No exemplo do ProgramaFor, temos a seguinte condição:

Vejamos como isso funciona. Ao executar o bloco de código do comando for (lista de comandos entre chaves), essa condição é testada. Se seu valor retornar true, o laço será executado mais uma vez para depois testar novamente a condição. Caso contrário, ele irá parar. Isso quer dizer que o laço mostrado continuará a ser executado até o momento no qual a variável i tiver valor maior ou igual a 10. Para que essa condição de parada do laço chegue, usualmente você irá usar a seção de incremento do laço for. Última do comando for, essa seção é utilizada para você alterar valores de variáveis, em particular, o valor da variável de controle. No caso do exemplo ProgramaFor, temos o seguinte na seção de incremento:

Esse comando é uma instrução válida em Java, em C e em outras linguagens que equivalem à seguinte instrução:

Dessa forma, a instrução i++ incrementa o valor de i em uma unidade. É um comando bem enxuto e bastante utilizado dentro da seção de incremento dos laços for. Uma característica adicional do laço for e de sua variável de controle é que se a variável i já existisse, você poderia simplesmente inicializá-la, como no exemplo de código a seguir:

É possível fazer esse trabalho de inicialização também antes do laço, como no exemplo a seguir:

Note que o código de inicialização está vazio, visto que todo o trabalho de declaração e inicialização da variável de controle foi feito antes do laço. Entretanto, a forma mais recomendada é a de se declarar e de se inicializar a variável de controle dentro da própria instrução for, como mostrado no ProgramaFor e no código a seguir. Isso porque geralmente a variável i só é útil para o conteúdo dentro do laço for, sendo então interessante ela ter escopo local ao bloco do for:

No caso do exemplo mostrado, o valor da variável i é utilizado tanto para controle do laço como para realizar processamento (imprimir seu valor para o usuário). Porém, não é incomum termos variáveis utilizadas apenas para controle do laço, sem ter seu valor usado diretamente na execução de cada laço. Veja isso no exemplo a seguir:

Esse programa declara uma outra variável, de nome texto, a qual é utilizada no processamento do laço. Você consegue perceber o que ela gera como resultado, ou seja, o que é impresso na tela? Fica como exercício para você fazer isso na sua mente ou no papel inicialmente, e depois implementar e executar o programa para validar sua resposta!

Veja agora um passo a passo do que se deve fazer ao usar o laço for:

  1. Cria-se uma variável de controle, que poderá servir como uma espécie de contador, ou seja, para contar o número de vezes que o bloco de comandos será executado.
  2. A variável recebe um valor inicial (chamamos a esse processo de “inicialização”). No caso de um contador, geralmente, esse valor inicial é 0 (zero) ou 1 (um).
  3. Uma “condição” determinada (por exemplo, se o valor final do contador foi atingido) é testada e, se for verdadeira, o bloco de comandos que pertence ao laço é executado. É através dessa condição que é determinado o número de repetições do laço.
  4. A variável de controle é incrementada ou decrementada.
  5. O programa então voltará ao passo 3 do laço para testar novamente a condição. Se a condição for falsa (ou seja, o valor de término tenha sido atingido), o laço é interrompido. Caso contrário, o laço continuará com os passos 3 e 4, e assim novamente.

Ao usar o laço for, você deve ter o cuidado de inicializar corretamente as variáveis utilizadas. Veja o exemplo a seguir. Tente observar sem escrever e rodar o programa, só imaginando na sua mente ou papel, quantas vezes o código dentro do laço será executado.

No laço for, o teste condicional é executado no início da execução, ou seja, se logo no início do programa todas as condições forem falsas, o código dentro do laço não será executado nenhuma vez.

Versão 5.3 - Todos os Direitos reservados