Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Solución del Reto Bancario

¡Me encantó el reto propuesto!

En el primer video, se mostró la funcionalidad del programa bancario y nos invitó a realizarlo antes de ver el paso a paso de la solución. Me enganché tanto en la resolución que apliqué mi lógica de programación para realizar el código más legible posible.

El código es el siguiente:

import java.util.Scanner;

public class Banco {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String cliente = "Tony Stark";
        String tipoCuenta = "Conrriente";
        double saldo = 3000;
        double monto =0;
        int opcion = 0;

        System.out.println("""
                ****************************
                
                Nombre del cliente: %s
                Tipo de cuenta: %s
                Saldo: S/. %.2f
                
                ****************************
                """.formatted(cliente, tipoCuenta, saldo));

        do {
            System.out.println("""
                ** Escriba el número de la opción deseada **
                        1 - Consultar saldo
                        2 - Retirar
                        3 - Depositar
                        0 - Salir
                """);

            opcion = scanner.nextInt();
            switch(opcion){
                case 1:
                    System.out.println("Tu saldo es: S/. %.2f".formatted(saldo));
                    break;
                case 2:
                    System.out.println("Ingresa el monto a retirar: ");
                    monto = scanner.nextDouble();
                    if(monto <= saldo){
                        saldo-= monto;
                        System.out.println("Monto retirado exitosamente!");
                        break;
                    }else{
                        System.out.println("El saldo es insuficiente. Volviendo al menú...");
                        break;
                    }
                case 3:
                    System.out.println("Ingresa el monto a depositar: ");
                    monto = scanner.nextDouble();
                    saldo+=monto;
                    System.out.println("Monto depositado exitosamente!");
                    break;
                case 0:
                    break;
                default:
                    System.out.println("Opción no valida!");
            }

        }while (opcion != 0);

        System.out.println("Fin de la operación.");
    }
}

Se puede agregar una validación más, y ese será tu reto, estimado compañero/a.

Espero te haya ayudado con esta lógica. ¡Saludos!

2 respuestas

¡Hola Renzo, espero que estés bien!

¡Qué bueno que disfrutaste del reto bancario y que te enganchaste tanto en la resolución! Tu código se ve muy bien estructurado y es legible. La funcionalidad básica está bien implementada, permitiendo consultar el saldo, retirar y depositar dinero.

Para agregar una validación adicional, podrías considerar verificar que el monto ingresado para retirar o depositar no sea negativo. Esto evitaría que se realicen operaciones con valores no válidos.

Con estas validaciones adicionales, te aseguras de que los montos ingresados sean siempre positivos, lo cual es una buena práctica en aplicaciones bancarias.

Espero que esta sugerencia te sea útil y continúes disfrutando de tus estudios de programación. ¡Saludos y sigue adelante!

Espero haber ayudado y buenos estudios!

solución!

¡Genial, Brenda! Es exactamente lo que faltaba validar. Y me encantó mucho tu feedback.

Es por esta razón que me veo obligado a compartir la solución final que tenía para mis compañeros de Alura. Y es la siguiente:

import java.util.InputMismatchException;
import java.util.Scanner;

public class Banco {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String cliente = "Tony Stark";
        String tipoCuenta = "Corriente";
        double saldo = 3000;
        double monto = 0;
        int opcion = 0;

        System.out.println("""
                ****************************
                
                Nombre del cliente: %s
                Tipo de cuenta: %s
                Saldo: S/. %.2f
                
                ****************************
                """.formatted(cliente, tipoCuenta, saldo));

        do {
            System.out.println("""
                ** Escriba el número de la opción deseada **
                        1 - Consultar saldo
                        2 - Retirar
                        3 - Depositar
                        0 - Salir
                """);

            try{
                opcion = scanner.nextInt();
                switch(opcion){
                    case 1:
                        System.out.println("Tu saldo es: S/. %.2f".formatted(saldo));
                        break;
                    case 2:
                        System.out.println("Ingresa el monto a retirar: ");
                        monto = scanner.nextDouble();
                        if(monto <= saldo && monto >= 0){
                            saldo-= monto;
                            System.out.println("Monto retirado exitosamente!");
                            break;
                        }else{
                            System.out.println("Saldo insuficiente. Volviendo al menú...");
                            break;
                        }
                    case 3:
                        System.out.println("Ingresa el monto a depositar: ");
                        monto = scanner.nextDouble();
                        if(monto >= 0){
                            saldo+=monto;
                            System.out.println("Monto depositado exitosamente!");
                            break;
                        }else{
                            System.out.println("El monto a depositar tiene que ser mayor a cero. Volviendo al menú...");
                            break;
                        }
                    case 0:
                        break;
                    default:
                        System.out.println("Opción no valida!");
                }
            }
            catch (InputMismatchException ex){
                System.out.println("Opción no valida!");
                scanner.nextLine();
                opcion = 1;
            }
        }while (opcion != 0);

        System.out.println("Fin de la operación.");
    }
}

Revisen el código y díganme qué parte les llamó más la atención.

Saludos a todos y sigamos aprendiendo juntos.