Oi Charles,
Seu código está quase perfeito! 👍
A recursão na função escolhaDoMetodoDePagamento
funciona, mas pode causar um estouro de pilha se o usuário errar muitas vezes. Uma alternativa seria usar um loop while
para manter a solicitação até que uma opção válida seja fornecida.
Além disso, você pode usar um do...while
para garantir que a pergunta seja feita pelo menos uma vez. Veja um exemplo:
void escolhaDoMetodoDePagamento() {
String? opcao;
do {
print('Digite o método de Pagamento: ${metodoDePagamento.join(', ')}');
opcao = stdin.readLineSync();
} while (opcao == null || opcao.isEmpty || !metodoDePagamento.contains(opcao));
opcaoDePagamento = opcao;
metodosDePagamentos(opcaoDePagamento);
}
Essa abordagem evita a recursão e torna o código mais robusto. 💪
Para saber mais: Documentação oficial do Dart sobre loops.
Continue praticando e explorando as possibilidades! 💻