참고: 이웅모 《모던 자바스크립트 Deep Dive》 8장

한 줄 요약

제어문은 조건·반복으로 실행 흐름을 바꾼다. 블록({})이 문들을 묶고, if/switch/for/while/do...while이 대표적이다.

핵심 개념

구문 언제 쓰나
블록문 여러 문을 하나의 실행 단위로 묶음. let/const 스코프의 경계
if...else 조건 분기
switch 하나의 값과 여러 case 비교. break 잊으면 fall-through
for 횟수가 대략 정해진 반복
while / do...while 조건 기반 반복. do는 최소 1회 실행

내가 이해한 동작 원리

조건식은 truthy/falsy로 취급된다. switch는 case를 고른 뒤 break가 없으면 다음 case로 뚫고 내려간다.

반복문은 초기화 → 조건 → 본문 → 증감(for) 패턴을 머릿속에 그려 두면 디버깅이 쉽다. 무한 루프는 조건이 영원히 truthy일 때 생긴다.

짧은 예제 코드

const score = 85;
if (score >= 90) console.log('A');
else if (score >= 80) console.log('B');
else console.log('C');

const day = 'mon';
switch (day) {
  case 'mon':
  case 'tue':
    console.log('weekday-ish');
    break;
  default:
    console.log('other');
}

for (let i = 0; i < 3; i++) console.log(i);

헷갈리기 쉬운 포인트 / 함정

다음 장으로 이어지는 한 줄

조건·논리에서 자주 튀는 타입 변환과 단축 평가를 따로 정리한다.