제어문은 코드 블록을 조건부(조건문) 또는 반복적으로(반복문) 실행하는 데 사용됩니다.
01. 블록도어
중괄호 안의 0개 이상의 문
블록 문은 항상 자체 종료되며 이는 문이 종료됨을 의미합니다.
따라서 블록 문 끝에 세미콜론을 추가하지 마십시오.
02. 조건문
주어진 조건식의 평가 결과에 따라 코드 블록(블록 명령)의 실행이 결정됩니다.
조건식은 부울 값으로 평가되는 식입니다.
1) if … else 문
예제 코드
if (조건식) {
// 조건식이 참이면 이 코드 블록이 실행된다.
} else {
// 조건식이 거짓이면 이 코드 블록이 실행된다.
}
if 문의 조건식은 부울 값으로 평가되어야 합니다.
예제 코드
if (조건식1) {
// 조건식1이 참이면 이 코드 블록이 실행된다.
} else if (조건식2) {
// 조건식2가 참이면 이 코드 블록이 실행된다.
} else if (조건식3) {
// 조건식3이 참이면 이 코드 블록이 실행된다.
} else {
// 조건식1, 조건식2, 조건식3이 모두 거짓이면 이 코드 블록이 실행된다.
}
if…else 문은 삼항 조건 연산자로 대체할 수 있습니다.
예제 코드
// x가 짝수이면 result 변수에 문자열 '짝수'를 할당하고, 홀수이면 문자열 '홀수'를 할당한다.
var x = 2;
var result;
if (x % 2) { // 2 % 2는 0이다.
이때 0은 false로 암묵적 강제 변환된다.
result="홀수";
} else {
result="짝수";
}
console.log(result); // 짝수
위의 예제는 삼항 조건 연산자를 사용하여 다음과 같이 다시 작성할 수 있습니다.
예제 코드
var x = 2;
// 0은 false로 취급한다.
var result = x % 2 ? '홀수' : '짝수';
console.log(result); // 짝수
2) 스위치 문
- switch 문: 주어진 식을 평가하고 값이 식과 일치하는 case 문으로 실행 흐름을 이동합니다.
- case 문: 상황을 나타내는 식을 지정하고 콜론으로 끝납니다.
그런 다음 실행할 문을 배치합니다.
예제 코드
switch (표현식) {
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행될 문;
break;
case 표현식2:
switch 문의 표현식과 표현식2가 일치하면 실행될 문;
break;
default;
switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문;
}
Switch 문은 부울 값 대신 문자열이나 숫자 값으로 평가되는 경우가 많습니다.
논리적으로 참 또는 거짓이 아니라 다른 경우에 따라 실행할 코드 블록을 결정하는 데 사용됩니다.
실패
switch 문 식의 평가 결과와 일치하는 case 문으로 실행 흐름을 이동하여 문을 실행한 후,
switch 문을 이스케이프 처리하지 않고 switch 문이 끝날 때까지 모든 후속 case 및 default 문을 실행합니다.
이 문제를 피하기 위해 break 문을 사용합니다.
(기본문에서는 break문을 생략하는 것이 일반적입니다.
)
(경우에 따라 break 문을 생략하는 폴스루가 유용할 수 있습니다.
)
if…else 문으로 해결할 수 있다면 switch 문 대신 if…else 문을 사용하는 것이 좋습니다.
그러나 조건이 너무 많고 switch 문을 사용하는 것이 더 읽기 쉬운 경우에는 switch 문을 사용하는 것이 좋습니다!
03. 반복문
조건식이 참이면 코드 블록을 실행한 다음 조건식을 다시 평가하고 조건식이 여전히 참이면 코드 블록을 다시 실행합니다.
조건식이 거짓이 될 때까지 반복합니다.
1) 설명을 위해
예제 코드
for (변수 선언문 또는 할당문; 조건식; 증감식) {
조건식이 참인 경우 반복 실행될 문;
}
구체적인 예를 살펴보겠습니다.
예제 코드
for (var i = 0; i < 2; i++) {
console.log(i);
}
0
1
2) while 문
- for 문은 주로 반복 횟수가 명확한 경우에 사용됩니다.
- while 문은 반복 횟수가 불확실할 때 주로 사용됩니다.
예제 코드
var count = 0;
// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
while (count < 3) {
console.log(count); // 0 1 2
count++;
}
무한 루프 탈출
코드 블록 내에서 if 문으로 이스케이프 조건을 만들고 break 문으로 코드 블록을 이스케이프합니다.
예제 코드
var count = 0;
// 무한루프
while (true) {
console.log(count);
count++;
// count가 3이면 코드 블록을 탈출한다.
if (count === 3) break;
} // 0 1 2
3) do … while 문
코드 블록이 먼저 실행되고 조건식이 평가됩니다.
예제 코드
var count = 0;
// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
do {
console.log(count); // 0 1 2
count++;
} while (count < 3);
04. 설명 일시정지
레이블 문, 루프 문 또는 switch 문의 코드 블록을 이스케이프합니다.
05. 계속 진술
루프 문의 코드 블록의 실행은 현재 위치에서 멈추고 실행 흐름은 루프 문의 증가/감소 방식으로 이동합니다.
break 문과 다른 이스케이프 루프!
참조