빕문 챕터 9 매서드) 문제와 풀이 2 질문
111
작성한 질문수 2
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
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문의 사용 방식에 대한 설명과 장단점 비교를 통해 프로그램 구성에 대한 조언을 얻을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
문제와 풀이4 문제점
0
38
2
문제풀이 시간마다 방향성
0
36
2
피라미드 문제 풀이
0
70
1
ScannerWhile3 예제 코드 질문
0
53
1
짝수 출력 문제 질문
0
49
1
Array 연습 문제 5번 질문입니다.
0
83
2
단축어가 이상하게 나옵니다
0
128
2
Sql강의
0
86
1
array 문제풀이 2번 질문입니다.
0
54
1
JAVA입문 / 메서드편 문제와 풀이2
0
46
1
인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요
1
789
3
OperationEx3에서 꼭 boolean을 써야 하나요?
0
58
1
for, while문 작성
0
64
1
68강 ArrayEx6 클래스 질문
0
58
1
IO.println(String.format("Hello and welcome!"));
0
144
2
소스코드 실행이 안돼요
0
117
2
메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?
0
78
1
While과 for 스코프 질문
0
61
1
김영한 java 입문 설치 질문
0
136
2
버퍼문제?
0
52
1
for문 피라미드 찍는거 질문
0
77
1
21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.
0
371
1
3번 문제 질문 있습니다.
0
95
2
sout에는 변수가 하나만 들어가야 하나요?
0
133
1





