[스파르타코딩클럽] 웹개발 종합반 - 2주차(1)

변시윤·2021년 7월 8일
0

2-2 JavaScript 복습

* hey 실행시 '홀수'와 '짝수' alert이 차례대로 뜨게 하기

function hey() {
  let count = 1;
  if (count % 2 == 0) {
    alert('짝수')
  } else {
    alert('홀수')
  }
  count += 1;
}

count는 1
카운트를 2로 나눴을 때 나머지가 0이면 '짝수
아니면 홀수

= count + 1; (현재 카운트에 +1 해서 다시 카운트에 넣기)

👇🏻
1 ÷ 2, 즉 나머지가 1이므로 처음값은 '홀수'
count(나머지 1)+1 = 2
2 ÷ 2 = 0 짝수

결과는?
'홀수'와 '짝수' 팝업이 나란히 뜨지 않고 '홀수'만 뜸

function hey() {
  let count = 1;
  if (count % 2 == 0) {
    alert('짝수')
  } else {
    alert('홀수')
  }
  count += 1;
}

let count = 1;가 함수(function)안에 있기 때문에 coumt += 1;의 명령을 초기화 시켜버리기 때문.

let count = 1;
function hey() {
  if (count % 2 == 0) {
    alert('짝수')
  } else {
    alert('홀수')
  }
  count += 1;

let count = 1;을 함수에서 분리해 그 위에 적어주면 count += 1; 명령이 정상적으로 작동하여 홀짝순으로 alert이 실행되는 것을 확인할 수 있다.


시행착오

Ⅰ.count(1)를 2로 나누는데 나머지가 왜 나오지?
"그것이 '나머지 구하기'니까."
당연히 소수점까지 나누어야 된다는 오류를 범해서 계속 이해가 안 갔던 것

Ⅱ.왜 '짝홀'순이 아니라 '홀짝'순으로 출력되는가?
count(1) ÷ 2의 나머지는 1
⇨ count += 1;이 붙었으니 나머지(1)에 1을 더함
⇨ 최종값은 2이므로 짝수

(나의_이해_매커니즘.txt)
마지막 count += 1;은 최종값에 포함되는 게 아니라 다시 처음으로 돌아가서 let count = 1;과 이어지는 것
⇨ 나머지가 1-0이 반복되므로 홀짝순으로 출력

profile
개그우먼(개발을 그은성으로 하는 우먼)

0개의 댓글