공부/Java

자바 은행 입출금 예제

Stair 2024. 8. 27. 09:25
반응형
package method.ex;

import java.util.Scanner;

public class MethodPrac {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choose;
        int bankAccount = 0;
        int deposit;
        int withdraw;

        while (true){
            System.out.println("---------------------------------------");
            System.out.println("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료");
            System.out.println("---------------------------------------");
            System.out.print("선택: ");
            choose = scanner.nextInt();
            if(choose == 1 ){
                System.out.print("입금액을 입력하세요: ");
                deposit = scanner.nextInt();
                bankAccount += deposit;
                System.out.println(deposit+"을 입금하였습니다. 현재 잔액: "+bankAccount+"원");
            }
            if(choose == 2){
                System.out.print("출금액을 입력하세요: ");
                withdraw = scanner.nextInt();
                if((bankAccount-withdraw) < 0){
                    System.out.println(withdraw+"를 출금하려 했으나 잔액이 부족합니다.");
                }else {
                    bankAccount -= withdraw;
                    System.out.println(withdraw+"를 출금하였습니다. 현재 잔액: "+bankAccount+"원");

                }
            }
            if (choose == 3){
                System.out.println("현재 잔액: "+bankAccount+"원");
            }
            if (choose == 4){
                System.out.println("시스템을 종료합니다.");
                break;
            }
        }
    }
}

 

위와 같은 예제를 메서드를 통해 리팩토링 하면 아래와 같다

package method.ex;

import java.util.Scanner;

public class MethodPrac {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choose;
        int bankAccount = 0;
        int withdraw;
        int money;

        while (true) {
            System.out.println("---------------------------------------");
            System.out.println("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료");
            System.out.println("---------------------------------------");
            System.out.print("선택: ");
            choose = scanner.nextInt();
            if (choose == 1) {
                System.out.print("입금액을 입력하세요: ");
                money = scanner.nextInt();
                bankAccount += deposit(bankAccount, money);
            }
            if (choose == 2) {
                System.out.print("출금액을 입력하세요: ");
                withdraw = scanner.nextInt();
                bankAccount = withdraw(bankAccount, withdraw);

            }
            if (choose == 3) {
                System.out.println("현재 잔액: " + bankAccount + "원");
            }
            if (choose == 4) {
                System.out.println("시스템을 종료합니다.");
                break;
            }
        }

    }

    public static int deposit(int bankAccount, int money) {
        bankAccount += money;
        System.out.println(money + "를 입금하였습니다. 현재 잔액: " + bankAccount + "원");

        return bankAccount;
    }

    public static int withdraw(int bankAccount, int money) {
        if ((bankAccount - money) < 0) {
            System.out.println(money + "를 출금하려 했으나 잔액이 부족합니다.");
        } else {
            bankAccount -= money;
            System.out.println(money + "를 출금하였습니다. 현재 잔액: " + bankAccount + "원");

        }
        return bankAccount;
    }


}

 

 

뭔가 조금 난잡하긴 하지만 입출금에 대한 메서드를 활용하였다

반응형

'공부 > Java' 카테고리의 다른 글

자바 클래스  (0) 2024.08.27
자바 메서드 관련 정리  (0) 2024.08.27
자바 메서드 오버로딩  (0) 2024.08.26
자바 메서드와 형변환  (0) 2024.08.26
자바 메서드  (0) 2024.08.26