Estruturas de Repetição
Autor: Marcos Costa  | Publicado: 2012-09-24T22:21:00-07:00








Estrutura de repetição&nbsp;é uma estrutura de desvio do fluxo de controle&nbsp;presente em linguagens de programação&nbsp;que realiza e repete diferentes computações ou ações dependendo se uma condição é verdadeira ou falsa, em que a expressão é processada e transformada em um valor booleano. Estão associados a uma estrutura de repetição uma condição (também chamada "expressão de controle" ou "condição de parada") e um bloco de código: verifica-se a condição, e caso seja verdadeira, o bloco é executado. Após o final da execução do bloco, a condição é verificada novamente, e caso ela ainda seja verdadeira, o código é executado novamente.





O if-Else

A sintaxe do if no Java é a seguinte:

if (condicaoBooleana){
&nbsp; &nbsp; &nbsp;codigo;
}

Condição Booleana é qualquer expressão que retorne true ou false. são os operadores: &lt;, &gt;, &lt;=, &gt;= entre outros..

Exemplo:
int idade = 15;

if (idade &lt; 18) {
&nbsp; &nbsp; &nbsp;System.out.println("Não pode entrar");
}

Podemos utilizar também a cláusula Else para indicar comportamento a ser executado no caso da expressão booleana ser falsa:


int idade = 15;

if (idade &lt; 18) {
&nbsp; &nbsp; &nbsp;System.out.println("Não pode entrar");
}else{
&nbsp; &nbsp; &nbsp;System.out.println("Pode Entrar");
}

Podemos também concatenar expressões booleanas dos operadores lógicos "E" e "OU" através do "&amp;&amp;" e "| |" respectivamente.

Exemplo: Vamos verificar se a pessoa tem menos de 18 anos e se não é amigo do dono:


int idade = 15;
boolean amigoDoDono= true;

if (idade &lt; 18 &amp;&amp; amigoDoDono = = false) {
&nbsp; &nbsp; &nbsp;System.out.println("Não pode entrar");
}else{
&nbsp; &nbsp; &nbsp;System.out.println("Pode Entrar");
}

Esse mesmo código poderia ficar assim:


int idade = 15;
boolean amigoDoDono= true;

if (idade &lt; 18 &amp;&amp; ! amigoDoDono) {
&nbsp; &nbsp; &nbsp;System.out.println("Não pode entrar");
}else{
&nbsp; &nbsp; &nbsp;System.out.println("Pode Entrar");
}

Repare que agora o trecho amigoDoDono = = false virou: !amigoDoDono, Eles tem o mesmo valor, pois esse operador de exclamação nega a expressão.


O While

É um comando usado para fazer um laço de repetição (loop), repetir um trecho de código algumas vezes. A idéia é que esse trecho de código seja repetido até determinada condição permanecer verdadeira.

int idade = 15;

while (idade &lt; 18){
&nbsp; &nbsp; &nbsp;System.out.prinln("idade");
&nbsp; &nbsp; &nbsp;idade = idade + 1;
}

O trecho dentro do bloco while será executado até o momento em que a condição idade &lt; 18 for falsa.


O For

Outro comando loop extremamente usado. O for além de fazer a mesma coisa que o While (só que em outra estrutura) ele também isola um espaço para inicialização de variáveis e o modificador dessas variáveis.

for (inicializacao; condicao; incremento){
&nbsp; &nbsp; &nbsp;codigo;
}

Exemplo:

for(i = 0; i &lt; 10; i = i + 1){ //ou nessa última: i++.
&nbsp; &nbsp; &nbsp;System.out.println(i);
}

O for poderia ser trocado pelo While:

int i = 0;

while (i &lt; 10){
&nbsp; &nbsp; &nbsp;System.out.println(i);
&nbsp; &nbsp; &nbsp;i = i + 1; // ou i++.
}


Controlando Loops

Como fazemos para controlar a parada de um loop no código? O código abaixo vai percorrer os números de x a y e parar quando encontrar um número divisível por 19, uma vez que foi utilizado a palavra chave break.

for (int i = x; i &lt; y; i++){
&nbsp; &nbsp; &nbsp;if(i % 19 == 0){
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Achei um número divisível por 19 entre x e y");
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break
&nbsp; &nbsp; &nbsp;}
}

Da mesma forma é possível obrigar o loop a executar o próximo laço. Para isso usamos a palavra chave continue.

for (int i = 0; i &lt; 100; i++){
&nbsp; &nbsp; &nbsp;if (i &gt; 50 &amp;&amp; i &lt; 60){
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;
&nbsp; &nbsp; &nbsp;}
&nbsp; &nbsp; &nbsp;System.out.println(i);
}

O código acima irá imprimir os números: todos de 1 a 100 menos o intervalo de números de 50 a 60.&nbsp;