Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Error en la función retiroEnCuenta

Buenas tardes,

Al realizar pruebas sobre el código, se evidencia que si se le manda un valor negativo en retiroEnCuenta(-10); este abona el valor a la cuenta sumándole el valor al saldo que contenga.

        if(valor <= this.#saldo){
            this.#saldo-= valor;
            return this.#saldo;
        }
    }

se realizó una validación para que la función no tome valores negativos.

        if((valor < 0)||(valor > this.#saldo)){
            return this.#saldo;
        }else if(valor <= this.#saldo){
            this.#saldo-= valor;
            return this.#saldo;
        }

    }

el código quedaría de la siguiente forma.

class Cliente {
    nombreCliente;
    dniCliente;
    rutCliente;
}

class CuentaCorriente{
    numero;
    #saldo;
    agencia;

    constructor(){
        this.#saldo=0;
        this.numero='';
        this.agencia= '';
    }

    depositoEnCuenta(valor){
        if (valor > 0)
            this.#saldo += valor;
        return this.#saldo;
    }

    //Modificación del código para que no acepte valores negativos en el parámetro valor
    retiroEnCuenta(valor){
        if((valor < 0)||(valor > this.#saldo)){
            return this.#saldo;
        }else if(valor <= this.#saldo){
            this.#saldo-= valor;
            return this.#saldo;
        }

    }
    /*De esta forma la función genera error con valores negativos en el parámetro valor
    modificando el valor del saldo

    retiroEnCuenta(valor){
        if(valor <= this.#saldo){
            this.#saldo-= valor;
            return this.#saldo;
        }
    }*/



    verSaldo(){
        return this.#saldo;
    }
}


cuentaWagnerCorriente = new CuentaCorriente();

let saldo = cuentaWagnerCorriente.verSaldo();
console.log("El saldo actual de su cuenta es : "+ saldo);

saldo = cuentaWagnerCorriente.depositoEnCuenta(100);
console.log("El saldo actual de su cuenta es : "+ saldo);
//console.log(cuentaWagnerCorriente);
saldo =cuentaWagnerCorriente.retiroEnCuenta(100);
console.log("El saldo actual de su cuenta es : "+ saldo);
//console.log(cuentaWagnerCorriente);
saldo =cuentaWagnerCorriente.depositoEnCuenta(10);
console.log("El saldo actual de su cuenta es : "+ saldo);

//pruebas de valores negativos
saldo =cuentaWagnerCorriente.retiroEnCuenta(-10);
console.log("El saldo actual de su cuenta es : "+ saldo);
2 respuestas

Hola Wagner, espero que estés bien! Gracias por compartir tu código con nosotros. Si tiene alguna pregunta sobre el contenido del curso, estamos aquí para ayudarlo. ¡Sigue practicando! ¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓.
solución!

Hola Wagner. Excelente tu propuesta de mejora al código. Efectivamente sólo validamos que fuese posible hacer un retiro hasta el saldo disponible. Con tu ajuste se valida que un retiro no se tome depósito.