import java.util.Scanner;

public class Konto {
    static double kontostand;
    static Scanner scanner;

    private static boolean isInt(String input) {
        try {
            Integer.parseInt(input);
        } catch (NumberFormatException nfe) {
            return false;
        }
        return true;
    }

    private static void showBalance() {
        System.out.printf("Kontostand: %f", kontostand);
    }

    private static void deposit() {
        System.out.printf("Bitte geben Sie an, wie viel Geld sie einzahlen möchten: ");
        String userInput;
        while (true) {
            userInput = scanner.nextLine();
            if (isInt(userInput)) {
                Double.parseDouble(userInput);
                break;
            } else {
                System.out.println("Bitte geben Sie eine ganze Zahl ein.");
            }
        }
        double cleanUserInput = Double.parseDouble(userInput);
        kontostand += cleanUserInput;
    }

    private static void withdraw() {
        System.out.printf("Bitte geben Sie ein, wie viel Sie abheben möchten: ");
        String userInput;
        while (true) {
            userInput = scanner.nextLine();
            if (isInt(userInput)) {
                Double.parseDouble(userInput);
                break;
            } else {
                System.out.println("Bitte geben Sie eine ganze Zahl ein.");
            }
            double cleanUserInput = Double.parseDouble(userInput);
            if (cleanUserInput > kontostand) {
                System.out.println("Der eingegebene Betrag ist größer als der Kontostand.");
                return;
            }
            kontostand -= cleanUserInput;
        }

    }

    private static void menu() {
        System.out.println("1. Kontostandanzeige");
        System.out.println("2. Einzahlung");
        System.out.println("3. Auszahlung");
        System.out.println("4. Verlassen");
        System.out.printf("Eingabe: ");
        String userInput;
        while (true) {
            userInput = scanner.nextLine();
            if (isInt(userInput)) {
                Integer.parseInt(userInput);
                break;
            } else {
                System.out.println("Bitte geben Sie eine ganze Zahl ein.");
            }
        }
        int cleanUserInput = Integer.parseInt(userInput);
        while (true) {
            switch (cleanUserInput) {
                case 1:
                    showBalance();
                    break;
                case 2:
                    deposit();
                    break;
                case 3:
                    withdraw();
                    break;
                case 4:
                    System.out.println("Verlassen...");
                    System.exit(0);
            }
        }
    }

    public static void main(String[] args) {
        kontostand = 0;
        scanner = new Scanner(System.in);
        menu();
    }
}
