IF, ELSE IF e ELSE em Java
Guia completo para dominar estruturas condicionais em Java do jeito mais simples possível
1. O Básico: Entendendo as Condicionais
No mundo da programação, as estruturas condicionais são como a capacidade de tomar decisões no dia a dia. Imagine que você acorda e pensa: "Se estiver sol, vou à praia. Senão, se estiver nublado, vou ao parque. Caso contrário (se chover), vou ficar em casa."
Em Java, e em outras linguagens, as estruturas if, else if e else permitem que seu programa siga diferentes caminhos lógicos dependendo de certas condições serem verdadeiras ou falsas. Elas são fundamentais para criar programas que reagem a entradas do usuário, condições do sistema ou valores de variáveis, tornando-os dinâmicos e inteligentes.
Dominar as condicionais é um passo crucial para qualquer desenvolvedor, pois elas são a espinha dorsal da lógica de negócios em quase todo software que você encontrará.
2. IF, ELSE IF e ELSE: As Ferramentas da Decisão
2.1. O que é if?
O if (se) é a estrutura condicional mais básica. Ele testa uma única condição. Se a condição for verdadeira, o bloco de código dentro do if é executado. Se for falsa, o bloco é ignorado, e o programa continua sua execução a partir da linha seguinte ao if (ou else, se houver).
if (condicao) {
// Código a ser executado SOMENTE se a condicao for verdadeira
}
// O programa continua aqui, independentemente da condicao
2.2. O que é else?
O else (senão) atua como uma "alternativa" ao if. Ele sempre vem junto com um if. Se a condição do if for falsa, o bloco de código dentro do else é executado. A lógica é simples: "Se isso for verdade, faça A. Senão, faça B."
if (condicao) {
// Código para quando a condicao for verdadeira
} else {
// Código para quando a condicao for falsa (a alternativa)
}
2.3. O que é else if?
O else if (senão se) é usado para testar múltiplas condições em sequência. Ele sempre vem depois de um if (ou outro else if). Se a condição do if inicial for falsa, o programa passa para o primeiro else if e testa sua condição. Se for verdadeira, executa seu bloco e pula o restante. Se for falsa, vai para o próximo else if (se houver), e assim por diante.
if (primeiraCondicao) {
// Executa se a primeira condição for verdadeira
} else if (segundaCondicao) {
// Executa se a primeira for falsa E a segunda for verdadeira
} else if (terceiraCondicao) {
// Executa se a primeira e segunda forem falsas E a terceira for verdadeira
} else {
// Executa se TODAS as condições anteriores forem falsas (opcional)
}
3. Regras de Ouro das Condicionais em Java
3.1. Estrutura dos Blocos com Chaves { }
Em Java, os blocos de código associados a um if, else if ou else são delimitados por chaves { }. Embora seja possível omitir as chaves para um único comando, é uma má prática e altamente desencorajado.
3.2. Comparando Valores: == vs .equals()
Esta é uma das maiores fontes de erro para iniciantes em Java e crucial para entender.
- == (Operador de Comparação): Para tipos primitivos (int, double, boolean, char), ele compara os valores. Para objetos (como String), ele compara as referências de memória.
- .equals() (Método de Objeto): É um método disponível para todos os objetos (incluindo String) que compara o conteúdo dos objetos.
A regra é: Sempre use .equals() para comparar o conteúdo de objetos, especialmente Strings.
3.3. Valores Aceitos nas Condições
A expressão dentro dos parênteses de um if ou else if deve sempre resultar em um valor booleano (true ou false).
- Variáveis booleanas: if (estaLogado)
- Operadores relacionais: (<, >, <=, >=, ==, !=) para comparar números
- Chamadas de método que retornam booleanos: if (minhaString.isEmpty())
- Operadores lógicos: (&&, ||, !) para combinar múltiplas condições
3.4. A Importância da Ordem das Condições
Em uma cadeia de if-else if-else, as condições são avaliadas na ordem em que aparecem. A primeira condição que for verdadeira terá seu bloco executado, e as demais serão ignoradas.
4. Exemplos Práticos
Exemplo 1: Condição Simples com if
public class ExemploIf {
public static void main(String[] args) {
int temperatura = 25;
if (temperatura > 20) {
System.out.println("Está calor hoje!");
}
System.out.println("Fim do programa.");
}
}
Exemplo 2: Uso de if e else
public class ExemploIfElse {
public static void main(String[] args) {
boolean temCafe = false;
if (temCafe) {
System.out.println("Que bom, vou tomar café!");
} else {
System.out.println("Preciso fazer mais café.");
}
}
}
Exemplo 3: Sistema de Notas Completo
import java.util.Scanner;
public class ExemploNotas {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite a nota do aluno (0-100): ");
int nota = scanner.nextInt();
if (nota >= 90) {
System.out.println("Excelente! Conceito A.");
} else if (nota >= 70) {
System.out.println("Muito bom! Conceito B.");
} else if (nota >= 50) {
System.out.println("Aprovado! Conceito C.");
} else {
System.out.println("Reprovado. Precisa estudar mais.");
}
scanner.close();
}
}
Exemplo 4: Comparação de Strings
String senhaCorreta = "senai123";
String senhaDigitada = "senai123";
if (senhaDigitada.equals(senhaCorreta)) {
System.out.println("Senha correta! Acesso permitido.");
} else {
System.out.println("Senha incorreta! Acesso negado.");
}
Exemplo 5: Verificar Idade para Votar
import java.util.Scanner;
public class Eleitor {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Digite sua idade: ");
int idade = input.nextInt();
if (idade < 16) {
System.out.println("Você ainda não pode votar.");
} else if (idade >= 18 && idade <= 70) {
System.out.println("Seu voto é obrigatório!");
} else {
System.out.println("Seu voto é facultativo.");
}
input.close();
}
}
5. Exercícios Práticos
Exercício 1: Par ou Ímpar
Crie um programa que peça um número inteiro ao usuário e diga se ele é par ou ímpar usando if e else.
Exercício 2: Dia da Semana
Escreva um programa que peça um número de 1 a 7 e imprima o dia da semana correspondente. Use if-else if-else.
Exercício 3: Login Simples
Crie um programa que peça um nome de usuário e uma senha. Se o usuário for "aluno" e a senha for "senai123", imprima "Login bem-sucedido". Use .equals() para as Strings.
6. Resumo Visual
Fluxo de Decisão:
if (condição1) → else if (condição2) → else if (condição3) → else
• Testa a primeira condição
• Se false, testa a próxima
• Executa apenas um bloco
• else final é opcional
Uso no Mundo Real:
• Validação de dados (usuário, senha)
• Cálculo de taxas ou descontos
• Controle de acesso
• Processamento de formulários
• Tratamento de erros
• Classificação de dados
Conclusão
Parabéns por chegar até aqui! Dominar as estruturas condicionais (if, else if, else) é essencial para qualquer programador Java. Elas são a base para criar programas que tomam decisões e reagem a diferentes situações.
Continue praticando e você logo estará usando condicionais naturalmente em seus projetos!