# 계좌 이체
/* 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 }
```
sehongpark님의 답변
## else 문이 있는 것과
없는 것, 모두 같은 흐름으로 동작합니다.
앞쪽 if문에서 return 되면,
그 아래쪽 코드는
수행되지 않기 때문입니다.
따라서
else문을 생략하는 것이
더 간결한 코드라 하겠습니다.
### PS.
하나의 메소드에
여러 return문을 작성할 수 있습니다.