제어문
1. 제어문이란?
제어문 control flow statement
은 조건문이나 반복문을 뜻한다.
2. 블록문
블록문 block statement
은 0개 이상의 문을 중괄호 { … }
로 묶은 것으로, 코드 블록이라고 부른다.
문의 끝에는 세미콜론 ;
을 붙이지만 블록문의 끝에는 세미콜론 ;
을 붙이지 않는다.
3. 조건문
if … else 문
대부분의 if … else
문은 3항 조건 연산자로 바꿔 쓸 수 있다.
const num = 0;
let result;
if (num > 0) {
result = '양수';
} else if (num < 0) {
result = '음수';
} else {
result = '영';
}
console.log(result); // '영'
위 if … else
문을 3항 연산자를 이용해 다음과 같이 바꿔쓸 수 있다.
const num = 0;
let result = num > 0 ? '양수' : num < 0 ? '음수' : '영';
console.log(result); // '영'
3항 연산자는 if … else
문과 다르게 표현식 expression
을 만든다.
즉 num > 0 ? '양수' : ‘음수’
는 표현식이므로 값으로 사용할 수 있다.
따라서 result
변수에 할당할 수 있다.
조건에 따라
단순히 값을 결정하여 변수에 할당
하는 경우, 3항 연산자를 사용하는 편이 좋다.
switch 문
switch
문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case
문으로 실행 흐름을 옮긴다.
switch (표현식) {
case 표현식1:
문;
break;
case 표현식2:
문;
break;
default:
문;
}
switch
문은 논리적 참, 거짓보다는 다양한 상황 case
에 따라 실행할 코드 블록을 결정할 때 사용한다.
4. 반복문
반복문은 조건식의 평가 결과가 true
인 경우 코드 블록을 실행한다.
for 문
while 문
do … while 문
자바스크립트는 세 가지 반복문인 for
, while
, do … while
문을 제공한다.
반복문을 대체할 수 있는 기능
Array.prototype.forEach
: 자바스크립트는 배열을 순회할 때 사용for … in
: 객체의 property 열거for … of
: iterable 순회
5. break 문
break
문은 label
문, switch
문, 반복문의 코드 블록을 탈출한다.
label 문이란?
label
문이란 식별자가 붙은 문을 말한다.
foo: for (let i = 1; i < 10; i++) {
for (let j = 1; j < 3; j++) {
if (i > 2) break foo;
console.log(`${i} * ${j} = ${i * j}`);
}
}
/* 실행결과
1 * 1 = 1
1 * 2 = 2
2 * 1 = 2
2 * 2 = 4
*/
label
문은 중첩된 for
문 외부로 탈출할 때 유용하다.
그 밖의 경우에는 사용을 권장하지 않는다.
6. continue 문
continue
문은 반복문의 코드 블록 실행을 현 시점에서 중단하고 반복문의 첫 부분으로 실행 흐름을 이동시킨다.