🧩 Exercícios: Estruturas Condicionais, Switch Expressions e Pattern Matching
Spec Sistemas Csharp • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 03.1 — Switch Expression Moderna com Descarte (_)
Contexto: Switch Expression Moderna com Descarte (_) no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.
Requisitos de Execução:
- Converter código de status HTTP em mensagem amigável utilizando switch expression concisa.
Resultado Esperado
Status mapeado em expressão funcional limpa.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_1_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// SwitchExpr.cs
int statusCode = 200;
string mensagem = statusCode switch {
200 => "OK: Sucesso",
404 => "Nao Encontrado",
500 => "Erro Interno",
_ => "Codigo Desconhecido"
};
Console.WriteLine(mensagem);
🔍 Nível 2: Prática
Problema 03.2 — Property Pattern Matching com Validação de Múltiplos Atributos
Contexto: Property Pattern Matching com Validação de Múltiplos Atributos no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.
Requisitos de Execução:
- Validar elegibilidade de desconto com
{ Tipo: 'VIP', Pontos: >= 1000 } => 0.20.
Resultado Esperado
Desconto calculado através de matching em propriedades de objetos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_2_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// PropertyPattern.cs
Cliente cliente = new("VIP", 1500);
decimal desconto = cliente switch {
{ Tipo: "VIP", Pontos: >= 1000 } => 0.20m,
{ Tipo: "VIP" } => 0.10m,
_ => 0.0m
};
Console.WriteLine($"Desconto aplicado: {desconto:P0}");
record Cliente(string Tipo, int Pontos);
⚡ Nível 3: Integração
Problema 03.3 — Relational Patterns e Logical Patterns (and, or, not)
Contexto: Relational Patterns e Logical Patterns (and, or, not) no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.
Requisitos de Execução:
- Classificar faixas de temperatura utilizando padrões lógicos
> 0 and <= 25.
Resultado Esperado
Condições compostas avaliadas com operadores de pattern matching.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_3_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// RelationalPattern.cs
int temp = 22;
string clima = temp switch {
< 0 => "Congelante",
>= 0 and <= 15 => "Frio",
> 15 and <= 28 => "Agradavel",
_ => "Quente"
};
Console.WriteLine($"Clima: {clima}");
🏆 Nível 4: Desafio Corporativo
Problema 03.4 — Positional Pattern Matching com Desestruturação (Deconstruct)
Contexto: Positional Pattern Matching com Desestruturação (Deconstruct) no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.
Requisitos de Execução:
- Implementar método
Deconstructem classe de coordenadas e realizar pattern matching posicional.
Resultado Esperado
Desestruturação posicional avaliada em tuplas.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_4_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// PositionalPattern.cs
(int x, int y) ponto = (0, 5);
string posicao = ponto switch {
(0, 0) => "Origem",
(0, _) => "Eixo Y",
(_, 0) => "Eixo X",
_ => "Quadrante"
};
Console.WriteLine($"Posicao cartesiana: {posicao}");
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |