Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 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:

  1. Mapear dias da semana retornando string diretamente do switch expression.

Resultado Esperado

Switch expression avaliado como valor.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_1_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_02_2_SeuNome
  2. 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:

  1. Inspecionar tipos de objetos dinâmicos utilizando case Integer i -> ... e case String s -> ....

Resultado Esperado

Pattern matching para switch avaliado com tipagem forte.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_3_SeuNome
  2. 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:

  1. Adicionar guard conditions com case String s when s.length() > 5 refinando os branches.

Resultado Esperado

Pattern matching com cláusula de guarda executado com precisão.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_4_SeuNome
  2. 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