🎯 목표
- **하나의 클래스(Calculator)**에서 모든 기능 구현
- 사용자 입력을 받아 사칙연산 수행
Scanner,if/switch문법 활용- 콘솔 기반 입출력 처리
- 코드 컨벤션을 학습 후 구현할 것
🔧 필수 구현 기능
1. 기본 사칙연산
지원할 연산:
+ (덧셈)
- (뺄셈)
* (곱셈)
/ (나눗셈)2. 사용자 인터페이스
=== Java 계산기 ===
첫 번째 숫자를 입력하세요: 10
연산자를 입력하세요 (+, -, *, /): +
두 번째 숫자를 입력하세요: 5
결과: 10.0 + 5.0 = 15.0
계속 계산하시겠습니까? (y/n): y3. 필수 예외 처리
- 0으로 나누기 방지
- 잘못된 연산자 입력 처리
- 숫자가 아닌 입력 처리
💻 구현 템플릿
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("=== Java 계산기 ===");
System.out.println("계산기를 종료합니다.");
scanner.close();
}
}📝 구현 단계별 가이드
Step 1: 기본 구조 만들기
Scanner객체 생성while무한 루프 구성- 숫자 2개와 연산자 입력받는 코드 작성
Step 2: 연산 로직 구현
- 아래와 같은 포맷팅으로 기능이 수행되도록 구현
첫 번째 숫자: 10
연산자: +
두 번째 숫자: 5
결과: 15.0Step 3: 예외 처리 추가
try {
// 입력 받는 코드
} catch (InputMismatchException e) {
System.out.println("숫자를 입력해주세요.");
scanner.nextLine(); // 잘못된 입력 제거
continue;
}Step 4: 결과 출력 및 반복 처리
- 결과를 보기 좋게 포맷팅
=== Java 계산기 ===
첫 번째 숫자를 입력하세요: 10
연산자를 입력하세요 (+, -, *, /): +
두 번째 숫자를 입력하세요: 5
결과: 10.0 + 5.0 = 15.0
계속 계산하시겠습니까? (y/n): y- 사용자가 계속할지 선택할 수 있도록 구현
Step 5: 연산 기록 보관
- 연산 결과를 보관할 자료구조를 선택하여 보관
Step 6: 추가 연산자
- 사칙연산에 아래와 같은 연산 기능 추가
% (나머지)
^ (거듭제곱) - Math.pow() 사용
sqrt (제곱근) - Math.sqrt() 사용Step 7: 메뉴 관리
- 아래와 같은 포맷팅으로 메뉴를 선택하고 기능이 수행되도록 구현
=== 계산기 메뉴 ===
1. 계산하기
2. 계산 이력 보기
3. 이력 지우기
0. 종료
선택:📋 체크리스트
필수 구현 사항 ✅
- 두 숫자와 연산자 입력받기
- 사칙연산 (+, -, *, /) 구현
- 0으로 나누기 예외 처리
- 잘못된 연산자 입력 처리
- 계속/종료 선택 기능
- 결과를 보기 좋게 출력
코드 품질 ✅
- 적절한 변수명 사용
- 주석으로 코드 설명
- 코드 컨벤션 준수
- 예외 상황 처리
사용자 경험 ✅
- 명확한 입력 안내 메시지 출력
- 오류 발생 시 친절한 안내 메세지 출력
🔍 테스트 케이스
정상 동작 테스트
입력: 10, +, 5 → 출력: 15.0
입력: 20, -, 8 → 출력: 12.0
입력: 6, *, 7 → 출력: 42.0
입력: 15, /, 3 → 출력: 5.0예외 상황 테스트
입력: 10, /, 0 → "0으로 나눌 수 없습니다"
입력: 5, #, 3 → "지원하지 않는 연산자입니다"
입력: abc, +, 5 → "숫자를 입력해주세요"📁 GitHub 제출 가이드 🔍 Notion 참고