약 1주일 정도 되는 시간동안 계산기 만들기 Lv1,2,3의 과제가 있었다.
lv1은 클래스 없이 기본적인 연산을 수행할 수 있게 만드는 계산기였고,
lv2는 클래스를 적용해 기본적인 연산을 수행할 수 있는 계산기,
lv3은 이넘, 제네릭, 람다 등을 이용하여 만든 계산기 였다.
원하는 인덱스의 값이 사라지지 않는 현상
배경 : 컬렉션에 기록된 값을 삭제하는 부분을 만들라고 해서 기록에 순서를 매겨 삭제하고싶은 순서의 번호를 삭제하게 만들려고 시도하였다.
발단 : historyNum이라는 변수에 값을 넣고 이를 calculator객체에 있는 historyDelete()메서드의 매개변수로 넘겨주었다.
전개 : 사람에게 보이는 순서와 인덱스 사이에는 1이라는 차이가 있으므로 1을 더해주었다.
위기 : 인덱스 오류가 발생하여 비정상적인 종료가 일어났다.
절정 : 왜 안되는지 10분가량 생각하다가 1을 더하는게 아니라 1을 빼주어야 하는것을 알아차렸다.
결말 : 입력받은 historyNum에 -1을 해준 값의 데이터를 삭제하고 남아있는 다른 기록을 출력하도록 문제를 해결하였다.
ps. 0을 입력받은경우 -1을 입력받으면 삭제하는 데이터의 인덱스가 -1이 되어버리는데 이경우 또한 indexoutofboundsexception이 발생하는데 제출하고나서 만지다가 알아차렸다...
컬렉션이 비어있는경우는 처리해주었었지만 0을 입력받은 경우를 과제 제출하고나서 새로 작성하였다.