1
resposta

Solução exercício clientes fiéis

void exibirClientesComAltaPontuacao(List<Map<String, dynamic>> clientes) {
  print("--- Clientes com pontuação superior a 7: ---");

  // Percorre cada cliente na lista
  for (var cliente in clientes) {
    // Obtém a pontuação do cliente.
    // Usamos 'as double' para garantir que estamos comparando um número.
    // Embora o tipo em Map seja dynamic, é bom ser explícito se soubermos o tipo esperado.
    double pontuacao = cliente["pontuacao"] as double;

    // Verifica se a pontuação é superior a 7
    if (pontuacao > 7) {
      // Se for, exibe o nome do cliente
      print("- ${cliente["nome"]}");
    }
  }
  print("------------------------------------------");
}

void main() {
  // Lista de mapas, onde cada mapa contém o nome e a pontuação de um cliente.
  List<Map<String, dynamic>> clientes = [
    {"nome": "João", "pontuacao": 6.5},
    {"nome": "Maria", "pontuacao": 8.7},
    {"nome": "Pedro", "pontuacao": 9.2},
    {"nome": "Ana", "pontuacao": 5.4}
  ];

  // Chama a função para exibir os clientes com alta pontuação
  exibirClientesComAltaPontuacao(clientes);
}
1 resposta

Oi, Giovane! Como vai?

Agradeço por compartilhar seu código.

Mandou muito bem na forma como estruturou a lista de Map<String, dynamic> e fez a verificação da pontuação. O uso do as double mostra um cuidado importante com tipagem, evitando problemas na comparação, e o for in deixou a leitura bem direta.

Você pode utilizar o método where, que permite filtrar listas de forma mais funcional.


var clientesFiltrados = clientes.where((cliente) => cliente["pontuacao"] > 7);
clientesFiltrados.forEach((cliente) {
  print(cliente["nome"]);
});
Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!