Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafio: Cajero automático

Para el desafio, yo tome una vía diferente para resolverlo, ya que en vez de utilizar un bucle while, lo hice con un for, y además, englobe cada operación en métodos estáticos, que los llamé en el switch-case, el cual a su vez, utilice su nueva sintaxis desde java 17. A continuación dejo mi código:

import java.util.Scanner;

public class DesafioBancario {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int opcion;
        int saldo = 350000;
        String nombre = "Hector";
        String tipoCuenta = "Corriente";

        System.out.println(String.format("Bienvenido Sr. %s, %nsu tipo de cuenta es: %s %ny su saldo es: $%d", nombre, tipoCuenta, saldo));

        String menu = """
                ********Escriba la opcion a realizar********
                1. Consultar saldo
                2. Retirar
                3. Depositar
                9. Salir
                """;

        do {
            System.out.println(menu);
            opcion = scanner.nextInt();

            if (opcion != 9) {
                switch (opcion) {
                    case 1 -> consultarSaldo(saldo);
                    case 2 -> saldo = retirar(saldo, scanner);
                    case 3 -> saldo = depositar(saldo, scanner);
                    default -> System.out.println("Opción no válida");
                }
            }

        } while (opcion != 9);
        System.out.println("Finalizando programa, muchas gracias por usar nuestros servicios");
        scanner.close();
    }

    static void consultarSaldo(int saldo) {
        System.out.println("Su saldo disponible es de: $" + saldo);
    }

    static int retirar(int saldo, Scanner scanner) {
        System.out.println("Ingrese la cantidad a retirar");
        int cantidadRetiro = scanner.nextInt();

        if (cantidadRetiro > saldo) {
            System.out.println("No tiene suficientes fondos");
        } else {
            saldo -= cantidadRetiro;
            System.out.println("Retiro exitoso, el saldo restante es de: $" + saldo);
        }
        return saldo;
    }

    static int depositar(int saldo, Scanner scanner) {
        System.out.println("Ingrese la cantidad a depositar");
        int cantidadDeposito = scanner.nextInt();
        saldo += cantidadDeposito;

        System.out.println("Deposito exitoso, el saldo actual es de: $" + saldo);
        return saldo;
    }

}
1 respuesta

Hola Héctor, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!