import java.util.Scanner;

public class atm {

    private static Scanner in ;
    private static float balance = 10000; // initial balance to 0 for everyone
    private static int anotherTransaction;

    public static void main(String args[]) {
        in = new Scanner(System.in);

        // call our transaction method here
        transaction();
    }

    private static void transaction() {
        // here is where most of the work is

        int choice;

        System.out.println("Please select an option");
        System.out.println("1. Registration");
        System.out.println("2. Balance");
        System.out.println("3. Withdraw");
        System.out.println("4. Deposit");
        System.out.println("5. Exit");

       

        choice = in .nextInt();

        switch (choice) {
            case 1:   

            case 2:
                // this option is to check balance
                System.out.println("Your balance is " + balance + "\n");
                anotherTransaction();
                break;

            case 3:
                float amount;
                System.out.println("Please enter amount to withdraw: ");
                amount = in .nextFloat();
                if (amount > balance || amount == 0) {
                    System.out.println("You have insufficient funds\n\n");
                    anotherTransaction(); // ask if they want another transaction
                } else {
                    // they have some cash
                    // update balance
                    balance = balance - amount;
                    System.out.println("You have withdrawn " + amount + " and your new balance is " + balance + "\n");
                    anotherTransaction();
                }
                break;

            case 4:
                // option number 2 is depositing
                float deposit;
                System.out.println("Please enter amount you would wish to deposit: ");
                deposit = in .nextFloat();
                // update balance
                balance = deposit + balance;
                System.out.println("You have deposited " + deposit + " new balance is " + balance + "\n");
                anotherTransaction();
                break;


            default:
                System.out.println("Invalid option:\n\n");
                anotherTransaction();
                break;
        }

    }

    private static void anotherTransaction() {
        System.out.println("Do you want another transaction?\n\nPress 1 for another transaction\n2 To exit");
        anotherTransaction = in .nextInt();
        if (anotherTransaction == 1) {
            transaction(); // call transaction method
        } else if (anotherTransaction == 2) {
            System.out.println("Thanks for choosing us. Good Bye!");
        } else {
            System.out.println("Invalid choice\n\n");
            anotherTransaction();
        }
    }
}