# 계좌 이체 /* 2. 현재 잔액에서 송금액을 이체대상 계좌로 전달하세요. */ // balance -= ??; // target.balance += ??; else { balance -= amount; target.balance += amount; return true; } 저 부분에서 else 를 쓰지 않고도 실행이 되는 이유가 궁금합니다. else가 없다면 if문에서 false가 나와도 뒤에 문장이 실행이 되어 계속해서 -3000이 되어야 되지 않나요?? if문의 return이 메소드의 return이라 앞에서 실행이 된다면 끝나는 것인가요? 그렇다면 else가 없다면 return이 if에서 한개 그리도 뒤에 한개가 더있는데 상관 없는 건가요>??? #### CODE <a class='btn btn-default' href='/codes/59190'>Link</a> ``` public class AccountTest { public static void main(String[] args) { // 객체 생성 Account a = new Account("123-45", 10000); Account b = new Account("567-89", 10000); // 송금: 3천원씩 a 계좌에서 -> b계좌로! boolean result = true; while (result) { result = a.transfer(b, 3000); } // 결과 출력 System.out.println(a.toString()); System.out.println(b.toString()); } } class Account { String num; // 계좌번호 int balance; // 잔액 public Account(String str, int i) { num = str; balance = i; } public String toString() { return String.format("Account { num: %s, balance: %d }", num, balance); } public boolean transfer(Account target, int amount) { if (balance < amount) { return false; } /* 2. 현재 잔액에서 송금액을 이체대상 계좌로 전달하세요. */ // balance -= ??; // target.balance += ??; else { balance -= amount; target.balance += amount; return true; } } } ``` #### INPUT ``` ``` #### OUPUT ``` Account { num: 123-45, balance: 1000 } Account { num: 567-89, balance: 19000 } ```
## else 문이 있는 것과 없는 것, 모두 같은 흐름으로 동작합니다. 앞쪽 if문에서 return 되면, 그 아래쪽 코드는 수행되지 않기 때문입니다. 따라서 else문을 생략하는 것이 더 간결한 코드라 하겠습니다. ### PS. 하나의 메소드에 여러 return문을 작성할 수 있습니다.