1
resposta

Calculadora com mapa de funções

import 'dart:io';

void main() {
  print("Digite o primeiro número:");
  double numeroUm = double.parse(stdin.readLineSync()!);

  print("Escolha a operação (+, -, *, /):");
  String operacao = stdin.readLineSync()!;

  print("Digite o segundo número:");
  double numeroDois = double.parse(stdin.readLineSync()!);

  // Mapa com as operações
  Map<String, Function(double, double)> operacoes = {
    '+': (a, b) => a + b, // Soma
    '-': (a, b) => a - b, // Subtração
    '*': (a, b) => a * b, // Multiplicação
    '/': (a, b) => b != 0 ? a / b : double.nan, // Operação de divição e trata divisão por zero
  };

  // Validação e execução
  if (operacoes.containsKey(operacao)) {
    double resultado = operacoes[operacao]!(numeroUm, numeroDois);
    if (resultado.isNaN) {
      print("Erro: divisão por zero!");
    } else {
      print("Resultado: $resultado");
    }
  } else {
    print("Operação inválida!");
  }
}

Creio que assim o código fica ainda mais limpo e de fácil entendimento

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá, Paulo, como vai?

Seu código está muito bem estruturado. A sua abordagem de usar um mapa para associar as operações matemáticas a funções é uma ótima prática de programação. Isso torna o código mais flexível, pois você pode adicionar ou remover operações no mapa sem precisar alterar a lógica do if principal, o que facilita a manutenção e a escalabilidade.

O fórum está sempre à disposição para você compartilhar mais progressos e tirar dúvidas. Continue com o excelente trabalho.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!