import java.util.Scanner;
public class TheBank {
public static void main(String[] args) {
var scanner = new Scanner(System.in);
var client = "Wilmar Zapata";
var tipoCuenta = "Corriente";
double saldo = 1599.994;
var opt = 0;
showHeader(client, tipoCuenta, saldo);
while(opt != 9) {
showOptions();
try {
opt = scanner.nextInt();
} catch (Exception _) {
System.out.println("Opción no válida, ¡intenta de nuevo!");
scanner.nextLine();
}
switch (opt) {
case 1 -> System.out.printf("%nEl saldo actualizado es: $ %.2f%n%n", saldo);
case 2 -> {
System.out.println("¿Cuál es el monto que desea retirar?");
var monto = getMount(scanner);
if (monto > saldo) {
System.out.printf("Saldo insuficiente!%n%n");
break;
}
if (monto > -1) {
saldo -= monto;
System.out.printf("Saldo restante: $ %.2f%n%n", saldo);
} else System.out.printf("%nEl saldo actualizado es: $ %.2f%n%n", saldo);
}
case 3 -> {
System.out.println("¿Cuál es el monto que desea depositar?");
var monto = getMount(scanner);
if (monto > -1) saldo += monto;
System.out.printf("%nEl saldo actualizado es: $ %.2f%n%n", saldo);
}
case 9 -> System.out.println(
"Finalizando el programa... muchas gracias por utilizar nuestros servicios"
);
default -> System.out.printf("Opción no válida, ¡intenta de nuevo!%n%n");
}
}
scanner.close();
}
private static double getMount(Scanner scanner) {
try {
return scanner.nextDouble();
} catch (Exception _) {
System.out.println("Monto no válido, ¡intenta de nuevo!");
scanner.nextLine();
return -1;
}
}
private static void showOptions() {
System.out.printf("""
** Escriba el número de la opción deseada **
1. Consultar saldo
2. Retirar
3. Depositar
9. Salir
"""
);
}
private static void showHeader(String client, String tipoCuenta, double saldo) {
System.out.printf("""
%n*******************************************************************
Nombre del cliente: %s
Tipo de cuenta: %s
Saldo disponible: %.2f
*******************************************************************%n
""", client, tipoCuenta, saldo
);
}
}