- 조건에 따라 코드 블록을 실행(조건문)
- 반복 실행(반복문)
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/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를 공부하며 정리한 내용입니다.