Lv.1 과제를 구현하면서 발생한 트러블과 솔루션을 작성해보려 한다.
1. 사칙연산 기호를 적합한 타입으로 선언한 변수에 저장합니다. (charAt(0)) 구현 이슈
<배경>
- 최초 작성 시, 연산기호를 String 타입으로 선언하여 사칙연산을 하게끔 구현하였다.
- 제시된 조건인 charAt();을 사용하여 String타입으로 저장된 연산기호를 하나씩 뽑아내야했다.
<문제점>
charAt()을 사용하려니, if문으로 구현했던 조건문이 연산기호를 인식하지 못하여 에러가 생겼다.
<해결 방법>
if로 구성한 전체 조건문을 switch 문으로 구조변경을 하였다.
charAt에 대해 스캐너를 연동해서 선언을 해주고 조건문으로 그 값을 받을 수 있도록 설정했다.
<새로 알게된 점>
1. char는 .equals 기능을 사용할 수 없어, if문 보다는 switch 문으로 작성하는 것이 적합하다.
2. charAt(0)의 사용 개념은 스캐너로 부터 문자열을 불러오나, 그 문자열 중 0번째 값을 뽑아온다는 의미이다.
2. 연산 오류가 발생할 경우 해당 오류에 대한 내용을 정제하여 출력합니다.
ex) “나눗셈 연산에서 분모(두번째 정수)에 0이 입력될 수 없습니다.“ 구현 이슈
<배경>
- 최초 작성 시, 두번째 숫자 입력값을 받을 때, '0'을 받을 수 없게끔 구현하였다.
<문제점>
- 위와 같이 작동하면 나눗셈 뿐만 아니라 모든 연산에 대하여 적용됨으로 나눗셈 연산에서만 분모값으로 0을 받을 수 없게 하는 조건의 본질을 흐리게 되었다.
<해결 방법>
- 나눗셈 값을 입력 받는 case 구문에 if 조건문을 걸어, 두번째 입력 값으로 0을 받고 나눗셈을 받았을 때, "분모에는 0을 입력할 수 없습니다" 구문을 프린트 할 수 있도록 해결하였다.
<새로 알게된 점>
- 구현되어야 할 부분을 명확히 인지하고 해당 부분에 조건을 명확히 걸어주어야 한다.
3. 반복문을 사용하되, 반복의 종료를 알려주는 “exit” 문자열을 입력하기 전까지 무한으로 계산을 진행할 수 있도록 소스 코드를 수정하기 구현 이슈
<배경>
- do-while 반복문을 사용하여 첫번째 연산은 무조건 실행하되, while 조건에 부합하지 않으면 다시 되돌아 가는 반복문을 구현하려고 했다. -> while조건에 대해 명확히 명시할 수 없어 실패<문제점>
- while 반복문을 전체 연산작업 파트에 걸고, break를 적용했으나 무한 루프에 빠졌다.
<해결 방법>
- while(true) 반복문 안에, 특정 문구를 입력하면 break로 인해 반복문을 빠져나올 수 있게끔 구현하였다.
- if 조건문을 사용하여, "exit" 문구를 입력 시, break 적용
<새로 알게된 점>
- String 타입으로 스캐너를 연동해서 종료 문구를 받을 때, .nextLine()이 에러가 나면 .next()로 수정해서 시도해 볼 것.(이렇게 변경했더니 에러 없이 잘 작동했음)
'Develop > Spring 공략' 카테고리의 다른 글
| [Spring] 카카오맵 API 사용 초기 세팅 (0) | 2025.04.22 |
|---|---|
| [Spring] Spring JPA - Page 와 Slice (0) | 2025.04.01 |
| [Kiosk] 트러블슈팅 (0) | 2025.01.21 |
| [Calculator] Lv.2 트러블슈팅 (0) | 2025.01.10 |
| 2024.12.23(Mon.) (0) | 2024.12.23 |