본문 바로가기

TIL

<자바스크립트 Javascript> 제어문

- 제어문(control flow statement)이란?

조건에 따라 코드 블록을 실행하거나 반복 실행함으로써 기본적인 코드의 실행 순서(위->아래)를 변경한다. 따라서 코드의 실행 흐름을 인위적으로 제어할 수 있다는 특징을 갖는다.

 

 

1) 블록문(block statement/compound statement)

중괄호로 묶은 코드가 실행되는 영역을 나타낸다. 보통 종결의 의미로 세미콜론을 사용하지만, 블록문은 그 자체로 코드 블록 내의 실행을 마치면 종결의 의미를 가지므로 세미콜론을 사용하지 않아도 무방하다.

 

 

2) 조건문(conditional statement)

조건에 따라 평가하여 실행되는 문이다. 불리언 값으로 평가되는 표현식을 조건식으로 갖는다.

 

- if... else 문 : 조건식을 통해 출력된 불리언 값으로 코드 블록 내의 실행여부가 결정된다. 불리언 값이 아닌 값으로 평가되면 자동으로 불리언 값으로 변환한다. 조건이 2개 이상일 때 else if 문을 추가로 사용 가능하며, else if 문과 else 문은 옵션(필수X)이다.

 

- switch 문 : 표현식을 평가하여 나온 결과 값과 같은 값을 찾아 해당 case의 문을 실행한다. 일치하는 값을 찾지 못하면 default의 문으로 이동한다. 주의할 점으로는 break 문이 없다면 일치하는 값을 찾더라도 코드 블록 내에서 계속 반복해서 실행된다는 점이 있다. 따라서 일치하는 값을 찾았다면 코드 블록을 탈출할 수 있도록 break 문을 써주어야 한다(모든 case 문에 작성한다.). 다만, default 문은 default 문 실행 후 코드 블록을 탈출하게 되므로 break 문이 필요하지 않다.

 

* if... else 문과 switch 문의 차이는 각각 실행되는 조건인 조건식, 표현식이 어떤 데이터타입을 갖느냐는 것이다. if... else 문의 조건식은 불리언 값, switch 문의 표현식은 문자열이나 숫자 값으로 주로 평가된다. 따라서 경우에 따라 사용하면 된다. 다만, switch 문은 사용성의 불편함에 따라 if... else 문을 사용하는 것이 권장된다. 그렇지만 조건이 많을 때의 가독성 문제라면 switch 문을 사용하는 것도 권장된다.

 

 

3) 반복문(loop statement)

조건식의 평가 결과 값이 참일 때 코드 블록을 실행한다. 이는 결과 값이 거짓이 나올 때까지 반복적으로 실행된다.

 

- for 문 : 가장 중요하다. i 변수(반복을 의미하는 iteration의 'i')를 이용하여 i가 0으로 초기화된 상태에서 지정한 값까지 i에 계속해서 수를 증가 혹은 감소시켜 코드 블록을 실행한다.

 

- while 문 : 주어진 조건식의 결과 값이 참일 때 코드 블록을 반복해서 실행한다. 이는 거짓이 나올 때까지 실행되는데, while 문을 탈출하려면 if 문을 만들고 break 문을 넣어주면 된다. while 문은 조건식의 결과 값이 불리언 값이 아닌 경우 불리언 값으로 강제 변환한다.

 

- do... while 문 : 코드 블록을 먼저 실행하고 조건식을 평가하므로, 무조건 코드 블록은 1번 이상은 실행된다는 특징을 갖는다.

 

* for 문은 반복 횟수가 명확할 때, while 문은 반복 횟수가 불명확할 때 주로 사용된다.

 

 

4) continue 문

반복문에서 코드 블록 실행을 중단하고 반복문의 증감식으로 이동하여 실행을 다시 시작한다.

 

 

 

 

 

참고 : 도서 <모던 자바스크립트 Deep Dive>