1. 학습 목표
1) 개인과제 계산기 구현
2. 학습 내용
1) 실습 환경 : IntelliJ
2) 알고리즘 : 깃허브 (백준 5 / 프로그래머스 5)
3) 학습 내용
이슈 사항들
1) 마지막에 연산자 입력 받고 나서 의 엔터 처리
=> 각각 입력 받고 sc.nextLine();을 추가
2) exit 입력받을 시에 종료하고 아닐 시에 뭘 할지 고민하다가 다음과 같이 작성
System.out.println("종료하시겠습니까?(yes/no)");
if (sc.nextLine().equals("yes")) break;
3) 사실 아래와 같이 했었는데 res가 redundant 라고 해서 swith 기존 표기법으로 변경함.
int res = switch (op) {
case '+' -> firstNumber + secondNumber;
case '-' -> firstNumber - secondNumber;
case '*' -> firstNumber * secondNumber;
case '/' -> firstNumber / secondNumber;
case '%' -> firstNumber % secondNumber;
default -> 0;
};
4) 컬렉션을 뭘로 할 지 고민하다가 순서 고려, 처음 들어온 데이터 순으로 삭제를 고려했을 때 Queue가 제일 적합하다고 생각하여 Queue로 진행하였다. 그리고 딱히 연산결과 리스트를 탐색할 일은 없을 것 같기도 해서..
5) '+' 이 부분에 원래 ADD 이걸 넣었었는데 오류가 나서 아래처럼 구현했다. char 타입의 op가 어찌됐든 ADD랑 동일한 게 아니다 보니 그런 것 같다.
switch (op) {
case '+':
res = OperatorType.ADD.operate(firstReal, secondReal);
break;
case '-':
res = OperatorType.SUBTRACT.operate(firstReal, secondReal);
break;
case '*':
res = OperatorType.MULTIPLY.operate(firstReal, secondReal);
break;
case '/':
res = OperatorType.DIVIDE.operate(firstReal, secondReal);
break;
case '%':
res = OperatorType.REMAIN.operate(firstReal, secondReal);
break;
};
3. 다음 학습 내용
1) 계산기 코드 구현한 거 정리하고 도전 과제 시도하기
4. 회고
예외 처리도 아직 안했고 구현할 게 꽤 남아서 시간 안에 가능할 지 모르겠지만 최대한..!
깃허브에 연동하는 것도 까먹고 있다가 부랴부랴 했는데 아직도 깃허브 다루는 건 어색한 것 같다. 내일 계산기 화이팅해보는 걸로..
'TIL' 카테고리의 다른 글
[부트캠프] TIL 2024.10.18.금 (0) | 2024.10.18 |
---|---|
[부트캠프] TIL 2024.10.17.목 (0) | 2024.10.17 |
[부트캠프] TIL 2024.10.15.화 (0) | 2024.10.15 |
[부트캠프] TIL 2024.10.11.금 (2) | 2024.10.11 |
[부트캠프] TIL 2024.10.10.목 (0) | 2024.10.10 |