제어문
조건에 따라 코드 블록을 실행/반복 실행 할 때 사용하는 것이 바로 제어문control flow statement이다.
보통 코드는 위에서 아래 방향으로 실행되지만 제어문을 사용해 실행 흐름을 제어할 수 있다.
실행 흐름을 어렵게 만들 경우, 코드의 가독성이 떨어진다는 단점이 있다.
블록문
블록문block statement은 0개 이상의 문을 중괄호로 묶은 것으로 코드 블록
또는 블록
이라고도 부른다. 일반적으로 제어문이나 함수를 정의할 때 사용하지만 단독으로 사용할 수도 있다.
자바스크립트에서는 문의 끝에 세미콜론(;
)을 붙이지만, 블록문의 경우 자체 종결성을 갖기 때문에 붙이지 않는다.
// 블록문
{
let message = 'hello'
}
// 제어문
if (message) {
console.log(message)
}
// 함수 선언문
function square(x) {
return x ** 2
}
조건문
조건문conditional statement은 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정하며 if-else
문과 switch
문이 있다.
1. if-else
문
if (조건식1) {
// 조건식1이 참인 경우
} else if (조건식2) {
// 조건식2가 참인 경우
} else {
// 조건식1과 조건식2가 모두 거짓인 경우
}
- 논리적 참/거짓에 따라 실행할 코드 블록 결정
- 조건식이 불리언 값으로 평가되지 않는다면, 암묵적으로 불리언 값으로 강제 변환된다.
else if
문은 여러 번,if
문과else
문은 한 번씩 사용 가능- 코드 블록 내의 문이 하나라면 중괄호 생략 가능
if (x % 2) console.log('홀수') else console.log('짝수')
- 대부분의
if-else
문은 삼항 조건 연산자로 변환 가능let result = x % 2 ? '홀수' : '짝수'
- 삼항 조건 연산자: 조건에 따라 값을 결정해 변수에 할당하는 경우
if-else
문: 조건에 따라 실행해야 할 내용이 복잡한 경우
2. switch
문
switch (표현식) {
case 표현식1:
// switch문의 표현식과 표현식1이 일치하는 경우
break
case 표현식2:
// switch문의 표현식과 표현식2가 일치하는 경우
break
default:
// switch문의 표현식과 일치하는 case 문이 없는 경우, 선택사항
}
- 다양한 상황에 따라 실행할 코드 블록 결정
- 표현식이 주로 문자열 또는 숫자 값
break
문이 없다면 표현식과 일치하지 않아도 다음case
문 실행 (폴스루fall through 1)
반복문
반복문loop statement은 조건식이 거짓일 때까지 코드 블록을 실행하며 for
문, while
문, do-while
문이 있다.
1. for
문
for (변수 선언/할당문; 조건식; 증감식) {
// 조건식이 참인 경우 반복 실행
}
- 조건식이 거짓으로 평가될 때까지 코드 블록 반복 실행
- 어떤 식도 선언하지 않으면 무한루프
for (;;) { ... }
for
문 중첩 가능
2. while
문
while (조건식) {
// 조건식이 참인 경우 반복 실행
}
- 조건식의 평가 결과가 불리언 값이 아니라면 불리언 값을 강제 변환
for
문: 반복 횟수가 명확한 경우while
문: 반복 횟수가 불명확한 경우
3. do-while
문
do {
...
} while (조건식)
- 코드 블록 먼저 실행 후, 조건식 평가
- 코드 블록은 무조건 한 번 이상 실행
break
문
break
문은 레이블문2, 반복문 또는 switch
문의 코드 블록을 탈출한다.
continue
문
continue
문은 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다.
정리
- 블록문: 0개 이상의 문을 중괄호로 묶은 것
- 조건문
if-else
문: 논리적 참/거짓에 따라 실행할 코드 블록 결정switch
문: 다양한 상황에 따라 실행할 코드 블록 결정
- 반복문
- 조건식이 거짓일 때까지 코드 블록 실행
for
문: 반복 횟수가 명확한 경우while
문: 반복 횟수가 불명확한 경우do-while
문: 코드 블록 무조건 한 번 이상 실행
break
문: 코드 블록 탈출 (레이블문, 반복문,switch
문)continue
문: 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동
💡
이 게시물은 모던자바스크립트 Deep Dive 교재를 참고하였습니다.