강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

정의석님의 프로필 이미지
정의석

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이2

빕문 챕터 9 매서드) 문제와 풀이 2 질문

작성

·

68

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 인턴입니다. 정의석님,

님의 질문은 프로그래밍에서 메서드 구조와 스타일의 장단점 및 실무에서 선호되는 코딩 스타일에 관한 것입니다. 아래 내용을 참고하시면 도움이 될 것 같습니다.

제안한 코드의 구조

님께서 작성하신 코드는 메서드를 활용하여 프로그램의 각 기능을 분리하고 역할을 명확히 하고 있습니다. 이러한 코드 구조는 다음과 같은 장점을 가집니다:

  1. 코드 가독성: 각 기능을 메서드로 분리함으로써, 코드가 더 읽기 쉽고 이해하기 쉬워집니다.
  2. 유지보수 용이성: 특정 기능(입금, 출금 등)을 수정하거나 업데이트할 때, 해당 메서드만 변경하면 되므로 유지보수가 용이합니다.
  3. 재사용 가능성: 메서드로 기능을 분리하면 다른 프로젝트나 다른 클래스에서 해당 메서드를 재사용하기가 수월합니다.

김영한 선생님의 코드와 비교

김영한 선생님의 코드와의 차이점은 구조적인 부분이나 메서드 활용 면에서 조금씩 다를 수 있습니다. 선생님께서는 교육적인 측면에서 특정 코딩 스타일을 보여주셨을 수도 있습니다.

실무에서의 선호 스타일

  1. 명확한 역할 분리: 실무에서는 각 메서드가 명확한 역할과 주석을 가지고 있는지 중요합니다. 이는 팀원 간의 협업에서 큰 도움이 됩니다.
  2. 간결하고 효율적인 코드: 지나치게 복잡한 논리보다는 간결하고 목적에 맞는 코드를 작성하는 것이 선호됩니다.
  3. 일관된 코드 스타일: 팀 내에서 합의된 코드 스타일(이름 짓기 규칙, 코드 포매팅 등)을 따르는 것이 권장됩니다.

참고할 질문 게시판 링크

비슷한 질문과 관련된 답변을 메서드 문제와 풀이 2 게시글에서 확인하실 수 있습니다. 이 게시글에서는 if문과 switch문의 사용 방식에 대한 설명과 장단점 비교를 통해 프로그램 구성에 대한 조언을 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

정의석님의 프로필 이미지
정의석

작성한 질문수

질문하기