Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] Proyecto Banco

En el video se indica que se realice el proyecto banco usando el swich, pero en un principio se entendio o entendi que uno debia llegar al resultado cumpliendo lo requerido, consulta de saldo retiro, deposito y salida. El proyecto lo realice pero con while e if, no se si esta correcto y me puedan indicar. adjunto el codigo
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import java.util.Scanner;

public class DesafioBco {

public static void main(String[] args) {
    String nombre = "Tony Stark";
    String tipoCuenta = "Corriente";
    double saldo = 2000000;
    int opcion = 0;
    int op1 = 1;
    int op2 = 2;
    int op3 = 3;
    int op9 = 9;
    Scanner teclado = new Scanner(System.in);
    int numValido = 0;
    boolean entradaValida = false;

    System.out.println("\n*** Bienvenidos al Banco ***");
    System.out.println("\n***********************************");
    System.out.println("*     Información del Cliente     *");
    // creo el formato para Chile que es 2.000.000,45
    DecimalFormatSymbols simbolos = new DecimalFormatSymbols(Locale.GERMANY); // Alemania usa el mismo formato
    DecimalFormat formato = new DecimalFormat("#,##0.##", simbolos);


    System.out.println("***********************************");
    System.out.println("\n***********************************");
    System.out.println("Nombre del Cliente    : " + nombre);
    System.out.println("Tipo de Cuenta        : " + tipoCuenta);
    System.out.println("Su Saldo Disponible es: " + "$" + formato.format(saldo) + ".-");
    System.out.println("***********************************");
    System.out.println("\n****************");
    System.out.println("Menu de Opciones");
    System.out.println("****************");

    String menu = """
            \n*** Escriba el numero de la Opcion Deseada***
            Op. 1 - Consulta de Saldo
            Op. 2 - Retirar
            Op. 3 - Depositar
            Op. 9 - Salir de la Consulta
            """;

    while (opcion != op9) {
        System.out.println(menu);

        if (teclado.hasNextInt()) {
            int op = teclado.nextInt();
            if ((op == op1 || op == op2 || op == op3 || op == op9)) {
                opcion = op;
            } else {
                System.out.println("❌ Debe ingresar una Opción Valida");
            }
        } else {
            System.out.println("❌ Ingrese Solo Números y Enteros!!!");
            teclado.next();
        }

        if (opcion == 1) {
            System.out.println("\n*** Su saldo actual es: " + "$" + formato.format(saldo) + " ***");
        } else if (opcion == 2) {
            System.out.println("Ingrese el Monto a Retirar");
            int retiro = teclado.nextInt();

            if (retiro > saldo) {
                System.out.println("**** Se EXCEDE del Maximo ****");
            } else if(retiro > 0){
                saldo = saldo - retiro;
                System.out.println("*** Su nuevo Saldo es: " + formato.format(saldo) + " ***");
            }
        } else if (opcion == 3){
            System.out.println("Ingrese el Monto a Depositar");
            int deposito = teclado.nextInt();

            if (deposito <= 0){
                System.out.println("Debe depositar una Suma Positiva Mayor a Cero");
            } else {
                saldo = saldo + deposito;
                System.out.println("*** Su nuevo Saldo es: " + formato.format(saldo) + " ***");
            }
        }



    }teclado.close();
}

}

2 respuestas

Hola Alejandro, espero que estés bien

¡Espero que estés disfrutando del curso! Tu implementación del proyecto del banco usando while e if es completamente válida. En programación, hay múltiples maneras de resolver un problema, y lo importante es que tu código funcione correctamente y sea fácil de entender.

El uso de switch es solo una de las formas de manejar múltiples condiciones, y a menudo se utiliza cuando tienes una lista de opciones claras, como en un menú. Sin embargo, tu enfoque con while e if también es correcto y logra el mismo objetivo.

Aquí tienes un ejemplo de cómo podrías usar switch en tu código, en caso de que quieras explorar esa opción:

while (opcion != op9) {
    System.out.println(menu);

    if (teclado.hasNextInt()) {
        int op = teclado.nextInt();
        if ((op == op1 || op == op2 || op == op3 || op == op9)) {
            opcion = op;
        } else {
            System.out.println("❌ Debe ingresar una Opción Valida");
            continue;
        }
    } else {
        System.out.println("❌ Ingrese Solo Números y Enteros!!!");
        teclado.next();
        continue;
    }

    switch (opcion) {
        case 1:
            System.out.println("\n*** Su saldo actual es: " + "$" + formato.format(saldo) + " ***");
            break;
        case 2:
            System.out.println("Ingrese el Monto a Retirar");
            int retiro = teclado.nextInt();

            if (retiro > saldo) {
                System.out.println("**** Se EXCEDE del Maximo ****");
            } else if(retiro > 0){
                saldo = saldo - retiro;
                System.out.println("*** Su nuevo Saldo es: " + formato.format(saldo) + " ***");
            }
            break;
        case 3:
            System.out.println("Ingrese el Monto a Depositar");
            int deposito = teclado.nextInt();

            if (deposito <= 0){
                System.out.println("Debe depositar una Suma Positiva Mayor a Cero");
            } else {
                saldo = saldo + deposito;
                System.out.println("*** Su nuevo Saldo es: " + formato.format(saldo) + " ***");
            }
            break;
        case 9:
            System.out.println("Gracias por usar nuestros servicios.");
            break;
    }
}
teclado.close();

El switch es más limpio cuando tienes un número fijo de opciones, pero tu implementación actual es igualmente funcional. ¡Sigue adelante con tu aprendizaje!

Espero haber ayudado y buenos estudios!

gracias por tus comentarios. Implemente el switch para tambien entenderlo, me costo un poco, pero aun programo de forma desordenada, pero logre hacerlo funcionar.
me queda solo una duda, break es igual a return?