Guia completo para dominar estruturas condicionais em Java do jeito mais simples possível
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á.
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
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)
}
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)
}
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.
Esta é uma das maiores fontes de erro para iniciantes em Java e crucial para entender.
A regra é: Sempre use .equals() para comparar o conteúdo de objetos, especialmente Strings.
A expressão dentro dos parênteses de um if ou else if deve sempre resultar em um valor booleano (true ou false).
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.
Exemplo 1: Condição Simples com if
public class ExemploIf {
public static void main(String[] args) {
int temperatura = 25; // Define a temperatura
if (temperatura > 20) { // Condição: Se temperatura for maior que 20...
System.out.println("Está calor hoje!"); // ...então imprime esta mensagem
}
System.out.println("Fim do programa."); // Esta linha sempre executa
}
}
Exemplo 2: Uso de if e else
public class ExemploIfElse {
public static void main(String[] args) {
boolean temCafe = false; // Define se há café
if (temCafe) { // Condição: Se temCafe for verdadeiro...
System.out.println("Que bom, vou tomar café!");
} else { // Senão (se temCafe for falso)...
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) { // Primeira condição: Se nota for 90 ou mais...
System.out.println("Excelente! Conceito A.");
} else if (nota >= 70) { // Senão, se nota for 70 ou mais...
System.out.println("Muito bom! Conceito B.");
} else if (nota >= 50) { // Senão, se nota for 50 ou mais...
System.out.println("Aprovado! Conceito C.");
} else { // Senão (se nenhuma das anteriores for verdadeira)...
System.out.println("Reprovado. Precisa estudar mais.");
}
scanner.close();
}
}
Exemplo 4: Comparação de Strings
String senhaCorreta = "senai123";
String senhaDigitada = "senai123"; // Simula entrada do usuário
if (senhaDigitada.equals(senhaCorreta)) { // Forma CORRETA de comparar Strings
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();
}
}
Crie um programa que peça um número inteiro ao usuário e diga se ele é par ou ímpar usando if e else.
import java.util.Scanner;
public class ParOuImpar {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Digite um número inteiro: ");
int num = sc.nextInt();
if (num % 2 == 0) {
System.out.println("O número " + num + " é PAR.");
} else {
System.out.println("O número " + num + " é ÍMPAR.");
}
sc.close();
}
}
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.
import java.util.Scanner;
public class DiaDaSemana {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Digite um número de 1 a 7: ");
int dia = sc.nextInt();
if (dia == 1) {
System.out.println("Domingo");
} else if (dia == 2) {
System.out.println("Segunda-feira");
} else if (dia == 3) {
System.out.println("Terça-feira");
} else if (dia == 4) {
System.out.println("Quarta-feira");
} else if (dia == 5) {
System.out.println("Quinta-feira");
} else if (dia == 6) {
System.out.println("Sexta-feira");
} else if (dia == 7) {
System.out.println("Sábado");
} else {
System.out.println("Número inválido.");
}
sc.close();
}
}
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.
import java.util.Scanner;
public class Login {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Usuário: ");
String usuario = sc.nextLine();
System.out.print("Senha: ");
String senha = sc.nextLine();
if (usuario.equals("aluno") && senha.equals("senai123")) {
System.out.println("Login bem-sucedido!");
} else {
System.out.println("Usuário ou senha inválidos.");
}
sc.close();
}
}
Dados três lados de um triângulo, determine se é Equilátero (3 lados iguais), Isósceles (2 lados igu