인프런 커뮤니티 질문&답변
빕문 챕터 9 매서드) 문제와 풀이 2 질문
작성
·
79
0
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
import java.util.Scanner;
public class Empty {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int balance = 0, depositAmount = 0, withdrawAmonut = 0;
int chooose;
while (true) {
title();
chooose = sc.nextInt();
switch (chooose) {
case 1:
balance = deposit(balance, depositAmount, sc);
break;
case 2:
balance = withdraw(balance, withdrawAmonut, sc);
break;
case 3:
printNowBalance(balance);
break;
case 4:
endSystem();
return;
default:
System.out.println("올바른 선택이 아닙니다. 다시 선택해주세요.");
}
}
}
public static void title() {
System.out.println("-----------------------------------");
System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료");
System.out.println("-----------------------------------");
System.out.print("선택: ");
}
public static int deposit(int balance, int depositAmount, Scanner sc) {
System.out.print("입금액을 입력하세요: ");
depositAmount = sc.nextInt();
balance += depositAmount;
System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance);
return balance;
}
public static int withdraw(int balance, int withdrawAmount, Scanner sc) {
System.out.print("출금액을 입력하세요: ");
withdrawAmount = sc.nextInt();
if (balance >= withdrawAmount) {
balance -= withdrawAmount;
System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원");
} else {
System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다.");
System.out.println("최종 잔액: " + balance + "원");
}
return balance;
}
public static void printNowBalance(int balance) {
System.out.println("현재 잔액 : " + balance + "원입니다");
}
public static void endSystem() {
System.out.println("시스템을 종료합니다.");
}
}
문제풀이 2를 최대한 메서드를 활용하기위해 이런식으로 해보고 김영한선생님 코드와 비교해봤는데 살짝 다르더라고요 비교해서 장담점이 어떤 것인지 실무에서는 어떤 스타일을 선호하는지 궁금합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 정의석님,
님의 질문은 프로그래밍에서 메서드 구조와 스타일의 장단점 및 실무에서 선호되는 코딩 스타일에 관한 것입니다. 아래 내용을 참고하시면 도움이 될 것 같습니다.
제안한 코드의 구조
님께서 작성하신 코드는 메서드를 활용하여 프로그램의 각 기능을 분리하고 역할을 명확히 하고 있습니다. 이러한 코드 구조는 다음과 같은 장점을 가집니다:
- 코드 가독성: 각 기능을 메서드로 분리함으로써, 코드가 더 읽기 쉽고 이해하기 쉬워집니다.
- 유지보수 용이성: 특정 기능(입금, 출금 등)을 수정하거나 업데이트할 때, 해당 메서드만 변경하면 되므로 유지보수가 용이합니다.
- 재사용 가능성: 메서드로 기능을 분리하면 다른 프로젝트나 다른 클래스에서 해당 메서드를 재사용하기가 수월합니다.
김영한 선생님의 코드와 비교
김영한 선생님의 코드와의 차이점은 구조적인 부분이나 메서드 활용 면에서 조금씩 다를 수 있습니다. 선생님께서는 교육적인 측면에서 특정 코딩 스타일을 보여주셨을 수도 있습니다.
실무에서의 선호 스타일
- 명확한 역할 분리: 실무에서는 각 메서드가 명확한 역할과 주석을 가지고 있는지 중요합니다. 이는 팀원 간의 협업에서 큰 도움이 됩니다.
- 간결하고 효율적인 코드: 지나치게 복잡한 논리보다는 간결하고 목적에 맞는 코드를 작성하는 것이 선호됩니다.
- 일관된 코드 스타일: 팀 내에서 합의된 코드 스타일(이름 짓기 규칙, 코드 포매팅 등)을 따르는 것이 권장됩니다.
참고할 질문 게시판 링크
비슷한 질문과 관련된 답변을 메서드 문제와 풀이 2 게시글에서 확인하실 수 있습니다. 이 게시글에서는 if문과 switch문의 사용 방식에 대한 설명과 장단점 비교를 통해 프로그램 구성에 대한 조언을 얻을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





