인프런 커뮤니티 질문&답변
JAVA입문 / 메서드편 문제와 풀이2
작성
·
21
0
public class MethodEx4 {
public static void main(String[] args) {
// Question
/*
은행 계좌 입출금
- 사용자로부터 계속 입력을 받아 입금와 출금을 반복 수행하는 프로그램을 작성하자.
- 또한 간단한 메뉴를 표시하여 어떤 동작을 수행해야 할지 선택할 수 있게 하자.
- 출금시 잔액이 부족하다면 "x원을 출금하려 했으나 잔액이 부족합니다."라고 출력해야 한다.
*/
// Answer
Scanner sc = new Scanner(System.in);
int balance = 0;
while (true) {
printMenu();
int option = sc.nextInt();
balance = menuExecute(sc, balance, option);
if (option == 4) {
break;
}
}
}
public static void printMenu() {
System.out.println("----------------------------------------");
System.out.println("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료");
System.out.println("----------------------------------------");
System.out.print("선택: ");
}
public static int menuExecute(Scanner sc, int balance, int option) {
int amount;
if (option == 1) {
System.out.print("입금액을 입력하세요: ");
amount = sc.nextInt();
balance += amount;
System.out.println(amount + "원을 입금하였습니다. 현재 잔액: " + balance);
} else if (option == 2) {
System.out.print("출금액을 입력하세요: ");
amount = sc.nextInt();
if (balance >= amount) {
balance -= amount;
System.out.println(amount + "원을 입금하였습니다. 현재 잔액: " + balance);
} else {
System.out.println(amount + "원을 출금하려 했으나 잔액이 부족합니다.");
}
} else if (option == 3) {
System.out.println("현재 잔액: " + balance);
} else if (option == 4) {
System.out.println("시스템을 종료합니다.");
return balance;
} else {
System.out.println("메뉴를 잘못 선택하셨습니다.");
}
return balance;
}
}
은행 계좌 입출금 문제를 이런 식으로 풀이했습니다. 강사님과 결과는 같지만, 혹시 좋지 않은 코딩인지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
재완님께서 작성하신 프로그램은 은행 계좌의 입출금 기능을 단계별로 잘 구현하셨습니다. 이 코드는 사용자가 선택한 옵션에 따라 입금, 출금, 잔액 확인, 프로그램 종료를 명확하게 수행합니다. 아래는 몇 가지 개선 사항과 고려할 점에 대한 안내입니다.
메서드 분리: 각 기능을 별도의 메서드로 분리하면 가독성과 유지보수성이 높아집니다. 예를 들어, 입금과 출금을 각각
deposit()과withdraw()메서드로 분리할 수 있습니다.입출력 검증: 규모가 큰 프로그램에서는 사용자의 입력 값에 대한 검증(숫자가 아닌 입력, 음수 입력에 대한 처리 등)이 필요한 경우가 있습니다. 현재 코드는 이러한 상황을 커버하지 않습니다.
출력 메시지 수정: 출금 시 메시지에서 “원을 입금하였습니다.“라는 부분은 “원을 출금하였습니다.“로 수정해야 맞습니다.
관련된 기존 질문과 답변으로, 이런 질문을 참고해 볼 수 있습니다:
- 섹션 9, 문제와 풀이 2 질문듧니다. - 이 게시글에서는 if 문을 사용하는 것과 switch 문을 사용하는 것 사이의 차이점에 대해 설명하고 있습니다. 여기서는 가독성을 위해 switch 문을 사용할 것을 권장했지만, if 문도 상황에 따라 적절히 사용될 수 있습니다.
이와 같은 코드 구조와 방법론을 통해서 프로그램의 기능성과 효율성을 고려하는 연습을 할 수 있습니다. 재완님의 코드도 문제 해결을 위한 좋은 접근입니다. 다만, 코드의 개선 가능성과 확장성 등을 고려하여 작성한다면 더 나아질 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






최종적으로 이런 식으로 기능을 더 나누었습니다.