Instruções Condicionais
Instruções condicionais permitem que programas executem código diferente com base em diferentes condições. Esta lição cobre a lógica condicional em Java.
Instrução if
A instrução if é a verificação condicional mais básica.
Sintaxe
if (condição) {
// Executado quando a condição é verdadeira
}
Exemplo: if simples
public class IfDemo {
public static void main(String[] args) {
int age = 20;
if (age >= 18) {
System.out.println("Você é adulto");
}
}
}
Instrução if-else
Quando a condição é falsa, o código no bloco else é executado.
Sintaxe
if (condição) {
// Executado quando a condição é verdadeira
} else {
// Executado quando a condição é falsa
}
Exemplo: if-else
public class IfElseDemo {
public static void main(String[] args) {
int age = 15;
if (age >= 18) {
System.out.println("Você é adulto");
} else {
System.out.println("Você é menor de idade");
}
}
}
Instrução if-else if-else
Usada para múltiplas verificações de condições.
Sintaxe
if (condição1) {
// Executado quando condição1 é verdadeira
} else if (condição2) {
// Executado quando condição2 é verdadeira
} else if (condição3) {
// Executado quando condição3 é verdadeira
} else {
// Executado quando nenhuma das condições acima é atendida
}
Exemplo: Calculadora de Notas
public class GradeDemo {
public static void main(String[] args) {
int score = 85;
if (score >= 90) {
System.out.println("Excelente");
} else if (score >= 80) {
System.out.println("Bom");
} else if (score >= 70) {
System.out.println("Médio");
} else if (score >= 60) {
System.out.println("Aprovado");
} else {
System.out.println("Reprovado");
}
}
}
if aninhado
Instruções if podem ser aninhadas umas dentro das outras.
Exemplo: if aninhado
public class NestedIfDemo {
public static void main(String[] args) {
int age = 25;
boolean hasID = true;
if (age >= 18) {
if (hasID) {
System.out.println("Entrada permitida");
} else {
System.out.println("Por favor, mostre seu ID");
}
} else {
System.out.println("Menores não são permitidos");
}
}
}
Instrução switch
A instrução switch é ideal para verificar uma variável contra múltiplos valores fixos.
Sintaxe
switch (variável) {
case valor1:
// Executado quando variável igual a valor1
break;
case valor2:
// Executado quando variável igual a valor2
break;
default:
// Executado quando nenhum caso corresponde
}
Exemplo: Dia da Semana
public class SwitchDemo {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("Segunda-feira");
break;
case 2:
System.out.println("Terça-feira");
break;
case 3:
System.out.println("Quarta-feira");
break;
case 4:
System.out.println("Quinta-feira");
break;
case 5:
System.out.println("Sexta-feira");
break;
case 6:
System.out.println("Sábado");
break;
case 7:
System.out.println("Domingo");
break;
default:
System.out.println("Dia inválido");
}
}
}
Usando Fall-through
Às vezes fall-through é útil, como verificar fins de semana:
public class SwitchFallThrough {
public static void main(String[] args) {
int day = 6;
String type;
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
type = "Dia útil";
break;
case 6:
case 7:
type = "Fim de semana";
break;
default:
type = "Inválido";
}
System.out.println("Dia " + day + " é " + type);
}
}
switch aprimorado (Java 14+)
Java 14 introduziu uma sintaxe switch aprimorada que é mais concisa:
public class EnhancedSwitch {
public static void main(String[] args) {
int day = 3;
String dayName = switch (day) {
case 1 -> "Segunda-feira";
case 2 -> "Terça-feira";
case 3 -> "Quarta-feira";
case 4 -> "Quinta-feira";
case 5 -> "Sexta-feira";
case 6 -> "Sábado";
case 7 -> "Domingo";
default -> "Inválido";
};
System.out.println(dayName); // Quarta-feira
}
}
Scanner para Entrada do Usuário
A classe Scanner pode capturar entrada do teclado dos usuários.
Etapas de Uso
// 1. Importar a classe Scanner
import java.util.Scanner;
// 2. Criar um objeto Scanner
Scanner scanner = new Scanner(System.in);
// 3. Ler entrada
int num = scanner.nextInt(); // Ler um inteiro
double d = scanner.nextDouble(); // Ler um número de ponto flutuante
String s = scanner.nextLine(); // Ler uma linha de texto
// 4. Fechar o scanner
scanner.close();
Exemplo: Verificação de Entrada do Usuário
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite sua idade: ");
int age = scanner.nextInt();
if (age >= 18) {
System.out.println("Você é adulto");
} else {
System.out.println("Você é menor de idade");
}
scanner.close();
}
}
Exemplo: Calculadora Simples
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite o primeiro número: ");
double num1 = scanner.nextDouble();
System.out.print("Digite o operador (+ - * /): ");
char operator = scanner.next().charAt(0);
System.out.print("Digite o segundo número: ");
double num2 = scanner.nextDouble();
double result;
switch (operator) {
case '+':
result = num1 + num2;
System.out.println(num1 + " + " + num2 + " = " + result);
break;
case '-':
result = num1 - num2;
System.out.println(num1 + " - " + num2 + " = " + result);
break;
case '*':
result = num1 * num2;
System.out.println(num1 + " * " + num2 + " = " + result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
System.out.println(num1 + " / " + num2 + " = " + result);
} else {
System.out.println("Erro: Não é possível dividir por zero");
}
break;
default:
System.out.println("Erro: Operador não suportado");
}
scanner.close();
}
}
❓ Perguntas Frequentes
P: Parênteses são obrigatórios para condições if? R: Sim, as condições devem ser envolvidas em parênteses. Mesmo para uma única instrução, é recomendado usar chaves para o bloco de código.
P: Quais tipos o switch suporta? R: switch suporta byte, short, int, char, String (Java 7+) e enum. Não suporta long, float ou double.
P: O break pode ser omitido? R: Sim, mas isso causará fall-through. Se fall-through for intencional, adicione um comentário para explicar.
📖 Resumo
- if é para verificações de condição única, if-else é para duas opções, if-else if-else é para múltiplas opções
- switch é ideal para verificar uma variável contra múltiplos valores fixos
- break previne fall-through do switch
- Scanner pode capturar entrada do teclado do usuário
📝 Exercícios
- Ano bissexto: Insira um ano e determine se é um ano bissexto
- Calculadora de notas: Insira uma pontuação (0-100) e saída a nota (Excelente/Bom/Médio/Aprovado/Reprovado)
- Calculadora: Construa uma calculadora simples usando Scanner
Próxima Lição
Na próxima lição, aprenderemos sobre Loops — fazendo programas repetirem certas operações.



