Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

função transferir saca o valor, mas não deposita na conta informada

Olá, pessoal, como vão?

a função transferir por algum motivo saca o valor, mas não deposita na conta informada. Tentei debugar, mas não consegui encontrar o erro.

Podem me ajudar?

index:

import { cliente } from "./Cliente.js"
import { contaCorrente } from "./ContaCorrente.js"

const cliente1 = new cliente ();
cliente1.nome = "Gabriel";
cliente1.cpf  = 11122233309;
const conta1 = new contaCorrente ();
conta1.conta = 43;
conta1.agencia = 1;
conta1.saldo = 21.50;
conta1.cliente = cliente1;


const cliente2 = new cliente ();
cliente2.nome = "Alice";
cliente2.cpf  = 11452233309;
const conta2 = new contaCorrente ();
conta2.conta = 86;
conta2.agencia = 1;
conta2.saldo = 0;
conta2.cliente = cliente2;


conta1.transferir (10, conta2);
console.log (conta2.saldo);

cliente.js:

export class cliente {

    nome;
    cpf;


}

contacorrente.js:

export class contaCorrente {

    conta;
    cliente;
    agencia;
    saldo;

    sacar (valor) {

        if (this.saldo >= valor) {

            this.saldo -= valor;
            console.log ("saque realizado com sucesso!")
            console.log ("Saque de R$" , valor , "realizado!" );
            console.log ("seu novo saldo é " + this.saldo);
        }else {

            console.log ("saque não foi possível de ser realizado. Saldo insuficiente!");
        }

    }

    deposito (valor) {
        if (valor > 0) {
        this.saldo +=valor;
        console.log ("depósito realizado com sucesso!")
        }
    }

    transferir (valor, conta) {
        const valorSacado = this.sacar (valor);
        conta.deposito (valorSacado);

    }
}

resultado do terminal:

saque realizado com sucesso!
Saque de R$ 10 realizado!
seu novo saldo é 11.5
0
2 respostas
solução!

Gabriel, está faltando o retorno (return) da função sacar

const valorSacado = this.sacar (valor); // retorna 0 ppois não tem return em sacar

Você pode modificar para:

    sacar (valor) {

        if (this.saldo >= valor) {
            this.saldo -= valor;
            console.log ("saque realizado com sucesso!")
            console.log ("Saque de R$" , valor , "realizado!" );
            console.log ("seu novo saldo é " + this.saldo);
            return valor;
        }

        console.log ("saque não foi possível de ser realizado. Saldo insuficiente!");
        return 0;
    }

Funcionou, Luis! obrigado!