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