1
resposta

[Dúvida] PQ MEU BREAK NAO FUNCIONA?


```class Conta {
  String titular;
  double valores;

  Conta(this.titular, this.valores);
}

void main() {
  // lista dos usuários
  Map<String, Conta> contas = {};

  print("Insira o nome do titular para consulta:");
  String? usuario_titular = stdin.readLineSync();
  String? dado_titular = usuario_titular?.toUpperCase();

  if (contas.containsKey(dado_titular)) {
    print("O titular $dado_titular está cadastrado!");
  } else {
    print("O usuário $dado_titular não esta cadastrado");

    print("Deseja cadastrar? Sim, para continuar e Não para sair");

    while (true) {
      String? adicionar_user = stdin.readLineSync();
      String? add_user = adicionar_user?.toUpperCase();

      if (add_user == "SIM" || add_user == "NÃO") {
        break;
      }
    }

    print("Carregando..");
    print("Certo.. informe o nome;");

    // laço para adicionar
    while (true) {
      String? titu_ = stdin.readLineSync();
      String? titular_user = titu_?.toUpperCase();

      if (titular_user == null ||
          titular_user.isEmpty ||
          titular_user == "SAIR") {
        break;
      }

      print(titular_user);

      print("Agora adicione o salário do titular (apenas numeros)");
      String? sal_ = stdin.readLineSync();
      double? sal_add = double.tryParse(sal_ ?? '');

      if (titular_user.isNotEmpty && sal_add != null) {
        contas[titular_user] = Conta(titular_user, sal_add);

        print("Dados adicionados com sucesso!");
        for (Conta i in contas.values) {
          print("Dados Adicionados!");
          print('Titular: ${i.titular}, Salário: ${i.valores}');
        }
        break;
      } else {
        print("valores divergentes, se deseja sair digite Sair");
      }
    }
  }
}
1 resposta

Ao invés de usar break; no if else, usa return; que a função vai parar, é o que eu comumente uso aqui.