🧩 Exercícios: Estrutura Condicional (if-else, switch expressions) e Operador Ternário
Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 02.1 — Switch Expressions Modernas no Java 21 com Sintaxe de Seta (->)
Contexto: Switch Expressions Modernas no Java 21 com Sintaxe de Seta (->) no contexto de Estrutura Condicional (if-else, switch expressions) e Operador Ternário.
Requisitos de Execução:
- Mapear dias da semana retornando string diretamente do switch expression.
Resultado Esperado
Switch expression avaliado como valor.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_1_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estrutura Condicional (if-else, switch expressions) e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public class SwitchModerno {
public static void main(String[] args) {
int dia = 3;
String tipo = switch (dia) {
case 1, 7 -> "Final de Semana";
case 2, 3, 4, 5, 6 -> "Dia Util";
default -> "Invalido";
};
System.out.println("Dia classificado: " + tipo);
}
}
🔍 Nível 2: Prática
Problema 02.2 — Palavra-chave yield em Switch Expressions com Blocos de Código
Contexto: Palavra-chave yield em Switch Expressions com Blocos de Código no contexto de Estrutura Condicional (if-else, switch expressions) e Operador Ternário.
Requisitos de Execução:
- Executar cálculos intermediários dentro de um branch do switch e retornar o valor final com
yield.
Resultado Esperado
Valor retornado explicitamente pelo yield no switch.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_2_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estrutura Condicional (if-else, switch expressions) e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public class YieldDemo {
public static void main(String[] args) {
String modo = "TURBO";
int limite = switch (modo) {
case "NORMAL" -> 100;
case "TURBO" -> {
int base = 200;
yield base * 2;
}
default -> 0;
};
System.out.println("Limite: " + limite);
}
}
⚡ Nível 3: Integração
Problema 02.3 — Pattern Matching para switch no Java 21 (JEP 441)
Contexto: Pattern Matching para switch no Java 21 (JEP 441) no contexto de Estrutura Condicional (if-else, switch expressions) e Operador Ternário.
Requisitos de Execução:
- Inspecionar tipos de objetos dinâmicos utilizando
case Integer i -> ...ecase String s -> ....
Resultado Esperado
Pattern matching para switch avaliado com tipagem forte.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_3_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estrutura Condicional (if-else, switch expressions) e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public class PatternMatchingSwitch {
public static void formatarObjeto(Object obj) {
String res = switch (obj) {
case Integer i -> String.format("Inteiro: %d", i * 2);
case String s -> String.format("Texto (%d chars): %s", s.length(), s.toUpperCase());
case null -> "Objeto Nulo";
default -> obj.toString();
};
System.out.println(res);
}
public static void main(String[] args) {
formatarObjeto(42);
formatarObjeto("java21");
}
}
🏆 Nível 4: Desafio Corporativo
Problema 02.4 — Cláusulas de Guarda (when) em Switch Pattern Matching
Contexto: Cláusulas de Guarda (when) em Switch Pattern Matching no contexto de Estrutura Condicional (if-else, switch expressions) e Operador Ternário.
Requisitos de Execução:
- Adicionar guard conditions com
case String s when s.length() > 5refinando os branches.
Resultado Esperado
Pattern matching com cláusula de guarda executado com precisão.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_4_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estrutura Condicional (if-else, switch expressions) e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
package main
public class SwitchGuardDemo {
public static void testar(Object obj) {
String msg = switch (obj) {
case String s when s.startsWith("ADMIN_") -> "Acesso Administrativo";
case String s -> "Acesso Padrao: " + s;
default -> "Acesso Negado";
};
System.out.println(msg);
}
public static void main(String[] args) {
testar("ADMIN_CARLOS");
}
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |