Estruturas de controle são mecanismos de programação que alteram o fluxo de execução de um programa com base em decisões, repetições ou desvios condicionais, permitindo executar blocos de código de forma seletiva ou repetitiva conforme condições específicas.
Tipos de estruturas de controle em Java:
As estruturas de controle em Java seguem padrões específicos de sintaxe. Vamos entender a estrutura básica de cada uma:
// 1) Estrutura if if (expressão) { // bloco de código executado se a expressão for verdadeira } // 2) Estrutura while while (expressão) { // bloco de código repetido enquanto a expressão for verdadeira } // 3) Estrutura for for (inicialização; condição; atualização) { // bloco de código repetido enquanto a condição for verdadeira } // 4) Estrutura do-while do { // bloco de código executado pelo menos uma vez e repetido enquanto a expressão for verdadeira } while (expressão);
Nota: As chaves { } são obrigatórias quando o bloco contém mais de uma instrução. Para blocos com apenas uma instrução, as chaves são opcionais, mas recomendadas para melhor legibilidade e para evitar erros.
A estrutura if permite que um bloco de código seja executado apenas se uma condição for verdadeira.
public class EstruturaIf {
public static void main(String[] args) {
int idade = 18;
// Estrutura if simples
if (idade >= 18) {
System.out.println("Pessoa maior de idade.");
}
// if com uma única instrução (sem chaves)
if (idade == 18)
System.out.println("Pessoa tem exatamente 18 anos.");
System.out.println("Fim do programa.");
}
}
Pessoa maior de idade.
Pessoa tem exatamente 18 anos.
Fim do programa.
A estrutura if-else permite escolher entre dois blocos de código: um executado se a condição for verdadeira e outro se for falsa.
public class EstruturaIfElse {
public static void main(String[] args) {
int idade = 16;
// Estrutura if-else
if (idade >= 18) {
System.out.println("Pessoa maior de idade.");
} else {
System.out.println("Pessoa menor de idade.");
}
// Verificando se um número é par ou ímpar
int numero = 7;
if (numero % 2 == 0) {
System.out.println(numero + " é par.");
} else {
System.out.println(numero + " é ímpar.");
}
}
}
Pessoa menor de idade.
7 é ímpar.
A estrutura if-else-if permite testar múltiplas condições em sequência.
public class EstruturaIfElseIf {
public static void main(String[] args) {
int nota = 85;
// Estrutura if-else-if para classificar a nota
if (nota >= 90) {
System.out.println("Conceito A");
} else if (nota >= 80) {
System.out.println("Conceito B");
} else if (nota >= 70) {
System.out.println("Conceito C");
} else if (nota >= 60) {
System.out.println("Conceito D");
} else {
System.out.println("Conceito F (Reprovado)");
}
// Outro exemplo com faixas etárias
int idade = 25;
if (idade < 12) {
System.out.println("Criança");
} else if (idade < 18) {
System.out.println("Adolescente");
} else if (idade < 60) {
System.out.println("Adulto");
} else {
System.out.println("Idoso");
}
}
}
Conceito B
Adulto
Dica: Na estrutura if-else-if, apenas o bloco correspondente à primeira condição verdadeira será executado. Se nenhuma condição for verdadeira, o bloco else (se existir) será executado.
A estrutura while repete um bloco de código enquanto uma condição especificada for verdadeira. A condição é verificada antes da execução do bloco.
public class EstruturaWhile {
public static void main(String[] args) {
// Contagem de 1 a 5 usando while
int contador = 1;
while (contador <= 5) {
System.out.println("Contagem: " + contador);
contador++; // Incrementa o contador para evitar loop infinito
}
System.out.println("Contagem finalizada!");
// Exemplo: somar os números de 1 a 10
int i = 1;
int soma = 0;
while (i <= 10) {
soma += i; // Adiciona o valor atual de i à soma
i++; // Incrementa i
}
System.out.println("A soma dos números de 1 a 10 é: " + soma);
}
}
Contagem: 1
Contagem: 2
Contagem: 3
Contagem: 4
Contagem: 5
Contagem finalizada!
A soma dos números de 1 a 10 é: 55
Atenção: Ao usar a estrutura while, certifique-se de que a condição se torne falsa em algum momento. Caso contrário, ocorrerá um loop infinito, e o programa nunca terminará de executar.
A estrutura do-while é similar ao while, mas a condição é verificada após a execução do bloco. Isso garante que o bloco seja executado pelo menos uma vez, mesmo que a condição seja inicialmente falsa.
public class EstruturaDoWhile {
public static void main(String[] args) {
// Contagem regressiva de 5 a 1 usando do-while
int contador = 5;
do {
System.out.println("Contagem regressiva: " + contador);
contador--;
} while (contador > 0);
System.out.println("Lançamento!");
// Exemplo que demonstra a execução garantida pelo menos uma vez
int x = 10;
do {
System.out.println("Este bloco será executado pelo menos uma vez, mesmo que a condição seja falsa.");
} while (x < 10); // Esta condição já é falsa, mas o bloco foi executado uma vez
}
}
Contagem regressiva: 5
Contagem regressiva: 4
Contagem regressiva: 3
Contagem regressiva: 2
Contagem regressiva: 1
Lançamento!
Este bloco será executado pelo menos uma vez, mesmo que a condição seja falsa.
A estrutura for fornece uma forma compacta de escrever loops com contador. Ela combina a inicialização, a condição de teste e a atualização em uma única linha.
public class estruturaFor {
public static void main(String[] args) {
System.out.println("Contagem de 1 a 5:");
for (int i = 1; i <= 5; i++) {
System.out.print(i);
if (i < 5) System.out.print(", ");
}
System.out.println();
int somaPares = 0;
for (int i = 0; i <= 10; i += 2) {
somaPares += i;
}
System.out.println("Soma dos números pares de 0 a 10: " + somaPares);
System.out.println("Contagem regressiva de 10 a 1:");
for (int i = 10; i >= 1; i--) {
System.out.print(i);
if (i > 1) System.out.print(", ");
}
System.out.println("\nLoop for de 2 variáveis i e j:");
for (int i = 1, j = 10; i <= 5; i++, j--) {
System.out.println("i = " + i + ", j = " + j);
}
}
}
Contagem de 1 a 5:
1, 2, 3, 4, 5
Soma dos números pares de 0 a 10: 30
Contagem regressiva de 10 a 1:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Loop for de 2 variáveis i e j:
i = 1, j = 10
i = 2, j = 9
i = 3, j = 8
i = 4, j = 7
i = 5, j = 6
| Estrutura | Quando usar | Características |
|---|---|---|
for |
Quando o número de repetições é conhecido ou você precisa de um contador |
|
while |
Quando o número de repetições é desconhecido e depende de uma condição |
|
do-while |
Quando você precisa executar o bloco pelo menos uma vez |
|
Teste seus conhecimentos sobre estruturas de controle em Java:
Reforce o conteúdo desta aula com mais dois exercícios práticos: