• 조건에 따라 코드 블록을 실행(조건문)
  • 반복 실행(반복문)

8.1 블록문

  • 0개 이상의 문을 중괄호{}로 묶은 것
  • 제어문이나 함수를 정의할 때
  • 블록문의 끝에는 세미콜론 X

8.2 조건문

  • 조건식(불리언 값)의 평가 결과 → 블록문의 실행 결정

    8.2.1 if…else 문

    • True → if 문의 코드블록 / False → else 문의 코드블록
    • 조건식 불리언 값으로 암묵적 타입 변환
    • 조건식 추가 : else if
    • 코드 내에 문이 하나 → 중괄호 생략 가능
    • 삼항 조건 연산자를 쓰는 것이 더 가독성 GOOD
    // 조건문 형식
    if (조건식) {
    	코드 블록
    } else if (조건식2) {
    	코드 블록
    } else {
    	코드 블록
    }
    
    var x = 2;
    
    // 0은 false로 취급된다.
    var result = x % 2 ? "홀수" : "짝수";
    console.log(result); // 짝수
    

    8.2.2 switch 문

    switch (표현식) {
      case 표현식1:
    		표현식과 표현식1이 일치하면 실행될 ;
    		break;
    	case 표현식2:
    		표현식과 표현식2이 일치하면 실행될 ;
    		break;
      default:
    		일치하는 case 문이 없을  실행될 ;
    }
    
    • 표현식 평가하여 그 값과 일치하는 case 문으로 (case 없다면 default - 선택사항)
    • 표현식은 보통 문자열, 순자 값 → 다양한 case
    • 폴스루 : break문 X → switch 탈출하지 않고, 이후의 모든 case, default 실행
      • break 쓰기.
      • default에는 break 생략
      • 여러 개의 case 중첩 가능

8.3 반복문

  • 조건식 참→블록문 실행 (조건식 거짓까지)

    8.3.1 for 문

    for (변수 선언문 또는 할당문; 조건식; 증감식) {
    	조건식이 참인 경우 반복 실행될 ;
    }
    

    https://poiemaweb.com/img/for-statement.png (출처: https://poiemaweb.com/js-control-flow)

    //무한루프
    for (;;) {...}
    

    8.3.2 while 문

    • 조건식 참 → 블록문 반복
    • 조건식 결과 불리언 값으로 강제 변환
    • break 문을 이용한 탈출
      while (count < 3) {
      console.log(count);
      count++;
      }
      

      8.3.3 do…while 문

    • 블럭문 실행 → 조건식 평가
      do {
      console.log(count);
      count++;
      } while (count < 3);
      

      8.4 break 문

    • 레이블 문, 반복문, switch문의 코드 탈출
    • 레이블 문 : 식별자가 붙은 문 (ex - foo: console.log(’foo’);)
//레이블 블록문에서 break
foo: {
  console.log(1);
  break foo;
  console.log(2);
}

//레이블 for문에서 break
outer: for (var i = 0; i < 3; i++) {
  for (var j = 0; j < 3; j++) {
    if (i + j === 3) break outer;
    console.log(`inner [${i}, ${j}]`);
  }
}

8.5 continue 문

  • 반복문의 코드 블록 실행 중단 & 증감식으로 이동

if 코드 블럭 부분에 ‘블럭’ 이 아니라 한 문장이면 중괄호 안 쳐도 된다!





이 포스트는 모던 자바스크립트 Deep Dive를 공부하며 정리한 내용입니다.