Mobile App Development · Dart/Flutter

12 · Switch Case — Desafios

Um desafio: um menu de operações matemáticas resolvido com switch expression, com proteção contra divisão por zero.

Desafio 1

desafio_switch_case.dart

Simula um menu de operações matemáticas com switch expression: cada arm calcula o resultado da operação escolhida, e o arm de divisão usa um operador ternário para verificar o divisor antes de dividir.

// Desafio: simular um menu de operações matemáticas com switch expression.
// Inclui proteção contra divisão por zero com operador ternário dentro do arm.
void main() {
  // Operação a executar.
  final String operacao = 'multiplicar';
  // Operandos usados em todas as operações.
  final int a = 12;
  final int b = 3;

  // Switch expression: mapeia o nome da operação ao cálculo correspondente.
  final resultado = switch (operacao) {
    'somar' => a + b,
    'subtrair' => a - b,
    'multiplicar' => a * b,
    // Verifica divisão por zero antes de dividir.
    'dividir' => b != 0 ? a / b : 'Erro: divisão por zero',
    _ => 'Operação inválida',
  };

  print('Resultado: $resultado');
}

Saída esperada

Resultado: 36

Como executar

dart run 12-Switch_Case/03_Desafios/codigo_fonte/desafio_switch_case.dart