계산기를 구현하는 과제에서 어려웠던 부분이 소숫점을 붙이는 과정이 저말 어려웠다.
if (action === 'dot') {
let Dot = true;
for (let searchDot = 0; searchDot < monitor.textContent.length; searchDot++) {
if (monitor.textContent[searchDot] === '.') {
Dot = false;
break; //점을 찍기 전에 점이있는지 판단하고 없을때만 찍는다.
}
}
if (Dot) {
if (operate === undefined) {//연산자를 입력하지 않은 상태는 무조건 붙인다.
monitor.textContent = monitor.textContent + pushContent;
}
else if(preKey === 'operate') {//이전 입력이 연산자이고 바로 점을 누르면 0.을 붙인다.
monitor.textContent = '0' + pushContent;
}
else if(preKey === 'number') {//이전 입력이 숫자일때는 숫자 뒤에 점을 붙인다.
monitor.textContent = monitor.textContent + pushContent;
}
}
preKey = 'dot';
}
소수점을 붙이는 조건을 나누는 것이 어려웠다.
몇시간을 헤메고 겨우 돌아가게 만들었다.
앞으로는 코드에 주석을 다는 습관을 들여야겠다.
내가 다음에 보기도 편하고 남이 보기에도 코드의 의도를 알아차리는데도 시간이 단축되기 때문이다.
주석을 적으면서 코딩하니 생각을 어디까지 했었는지 알 수 있어서 좋았다.