Java/[inflearn] 자바 입문

[김영한_자바입문][9. 메서드] 변수 선언 및 초기화 (p.30)

줌인. 2024. 1. 19. 22:38
switch 문에서 사용될 동적인 값인 amount를 미리 선언하여,
각 case에서 값을 입력받고 메소드에 전달하기 위해 변수를 초기화하지 않은 것이다.

 

 

 

▶ 기존 코드 작성 내용 참고 

https://zoooom-in.tistory.com/27

 

[김영한_자바입문][4. 조건문] 변수 선언 및 초기화 (p.11)

[교재에 표기된 코드] _ coupon 변수 선언 public static void main(String[] args) { int grade = 2; int coupon; if (grade == 1) { coupon = 1000; } else if (grade == 2) { coupon = 2000; } else if (grade == 3) { coupon = 3000; } else { coupon = 500;

zoooom-in.tistory.com

 

[p.30 / 내가 작성한 코드 및 교재 작성 코드] int amount 단순 변순 선언

public class MethodEx4Ref4_1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int balance = 0;
        int amount;

        while (true) {
            System.out.println("======================================");
            System.out.println("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료");
            System.out.println("======================================");
            System.out.print("선택 : ");
            int option = scanner.nextInt();

            switch (option) {
                case 1:
                    System.out.print("입금액을 입력하세요 : ");
                    amount = scanner.nextInt();
                    balance = deposit(balance, amount);
                    break;
                case 2:
                    System.out.print("출금액을 입력하세요 : ");
                    amount = scanner.nextInt();
                    balance = withdraw(balance, amount);
                    break;
                case 3:
                    System.out.println("현재 잔액 : " + balance + "원");
                    break;
                case 4:
                    System.out.println("시스템을 종료합니다.");
                    return;
                default:
                    System.out.println("option 선택을 확인해주세요");
            }
        }
    }

    public static int deposit(int balance, int amount) {
        balance += amount;
        System.out.println(amount + "원을 입금하였습니다. 현재 잔액 : " + balance + "원");
        return balance;
    }

    public static int withdraw(int balance, int amount) {
        if (amount > balance) {
            System.out.println(amount + "원을 출금하려 했으나 잔액이 부족합니다.");
            return balance;
        }
        balance -= amount;
        System.out.println(amount + "원을 출금하였습니다. 현재 잔액 : " + balance + "원");
        return balance;
    }

 

상기 값에 단순 변수 선언을 한 이유는?

`switch` 문 안에서 각 `case`에 따라서 `amount` 값을 입력받고  메소드에 전달하기 위해서 미리 변수를 선언했다.

조건에 따라 동적으로 변함에 따라 Main 코드에 초기화 없이 변수 amount만 선언한 것이다.
728x90