7. Controle de Fluxo em Java: if, else, switch, loops
O controle de fluxo é um dos conceitos fundamentais na programação em Java, pois permite que o programa tome decisões e execute repetições de código de acordo com condições específicas. Neste capítulo, vamos explorar os principais elementos de controle de fluxo: if
, else
, switch
e os loops for
, while
e do-while
.
Condicional if-else
O if
é a estrutura de controle mais básica. Ele testa uma condição e, se essa condição for verdadeira (true
), executa um bloco de código. Caso contrário, o programa continua sua execução após o bloco if
. A estrutura else
, que é opcional, permite definir um bloco de código que será executado se a condição do if
não for verdadeira.
if (condicao) {
// Bloco de código que será executado se condicao for verdadeira
} else {
// Bloco de código que será executado se condicao for falsa
}
É possível encadear múltiplas instruções if-else
para testar várias condições.
if (condicao1) {
// Bloco de código para condicao1 verdadeira
} else if (condicao2) {
// Bloco de código para condicao2 verdadeira
} else {
// Bloco de código se nenhuma das condições anteriores for verdadeira
}
Estrutura switch
O switch
é uma forma de substituir múltiplos if-else
quando se deseja comparar a mesma variável com diferentes valores. A variável é testada contra uma série de valores (case
) e, quando encontra uma correspondência, executa o bloco de código associado a esse valor. A palavra-chave break
é usada para sair do switch
após a execução de um bloco de código. O default
é opcional e define o código a ser executado se nenhum case
corresponder.
switch (variavel) {
case valor1:
// Código para valor1
break;
case valor2:
// Código para valor2
break;
// ...
default:
// Código se nenhum case corresponder
}
Loops: for, while e do-while
Os loops permitem executar um bloco de código repetidamente enquanto uma condição for verdadeira. Existem três tipos principais de loops em Java:
- for: Geralmente usado quando o número de iterações é conhecido. A sintaxe do
for
inclui a inicialização, a condição de continuação do loop e a expressão de incremento ou decremento, tudo em uma única linha. - while: Executa um bloco de código enquanto uma condição for verdadeira. A condição é avaliada antes da execução do bloco de código, o que significa que o bloco pode nunca ser executado se a condição for falsa desde o início.
- do-while: Semelhante ao
while
, mas a condição é avaliada após a execução do bloco de código, garantindo que o bloco seja executado pelo menos uma vez.
Loop for
for (inicializacao; condicao; incremento) {
// Código a ser repetido
}
Exemplo:
for (int i = 0; i < 10; i++) {
System.out.println("i = " + i);
}
Loop while
while (condicao) {
// Código a ser repetido
}
Exemplo:
int i = 0;
while (i < 10) {
System.out.println("i = " + i);
i++;
}
Loop do-while
do {
// Código a ser repetido
} while (condicao);
Exemplo:
int i = 0;
do {
System.out.println("i = " + i);
i++;
} while (i < 10);
Controle de Fluxo Avançado
Além das estruturas básicas, existem comandos como break
e continue
que oferecem controle adicional sobre os loops. O break
é usado para sair de um loop imediatamente, enquanto o continue
pula para a próxima iteração do loop.
Uso do break
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Sai do loop quando i é igual a 5
}
System.out.println("i = " + i);
}
Uso do continue
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // Pula para a próxima iteração se i for par
}
System.out.println("i = " + i);
}
É importante notar que o uso excessivo de break
e continue
pode tornar o código difícil de ler e manter. Portanto, deve-se usá-los com cautela e apenas quando realmente melhorarem a clareza ou a eficiência do código.
Conclusão
O controle de fluxo é essencial para a criação de programas dinâmicos e interativos em Java. Compreender e utilizar eficientemente as estruturas if-else
, switch
e os loops for
, while
e do-while
permite que você escreva código que responda a diferentes condições e execute tarefas repetitivas de maneira eficaz. A prática constante desses conceitos é fundamental para se tornar um programador Java competente.