[DeepDiveJS] 08장 제어문

소히·2022년 8월 16일
0

DeepDiveJS

목록 보기
6/11
post-thumbnail

08. 제어문

블록문

0개 이상의 문을 중괄호로 묶은 것. 하나의 실행 단위

조건문

조건식의 평가 결과에 따라 블록문의 실행을 결정한다.
boolean 값으로 평가될 수 있는 표현식.

🌵 if...else 문
조건식은 boolean값으로 평가되어야 한다.
만약 boolean값이 아니면 자바스크립트 엔진에 의해 boolean값으로 강제 변환되어 실행할 블록문을 결정한다. -> 암묵적 타입 변환

🌵 switch 문
switch문의 표현식은 boolean값보다는 문자열이나 숫자 값인 경우가 많다.
논리적 참, 거짓보다는 다양한 상황(case)에 따라 실행할 블록문을 결정할 때 사용한다.

switch(표현식) {
  case 표현식1:
    switch 문의 표현식과 표현식1이 일치하면 실행될 문;
    break;
  case 표현식2:
    switch 문의 표현식과 표현식2이 일치하면 실행될 문;
    break;
  default:
  	switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문;
}
  • case 문 실행 후 switch 문을 탈출하지 않고 모든 case 문과 default 문을 실행하는 것을 폴스루(fall through)라 한다.
    break문을 사용하여 블록문에서 탈출해줘야 한다.

아래와 같이 폴스루를 활용해 여러 개의 case 문을 하나의 조건으로 사용할 수도 있다.

const month = 2;
const days = 0;

switch (month) {
	case 1: case 3: case 5: case 7: case 8: case 10: case 12:
	days = 31;
	break;
	case 4: case 6: case 9: case 11:
	days = 30;
	break;
	case 2:
	days = 29;
	break;
	default:
		console.log('Invaild month');
};
console.log(days) //29

반복문

조건식이 false일 때까지 반복 실행한다.
for문, while문, do...while문이 있다.


🌵 while 문
반복 횟수가 불명확할 때 주로 사용한다.
만약 조건식의 평가 결과가 boolean값이 아니면 boolean 값으로 강제 변환하여 논리적 참, 거짓을 구별한다.

  • 조건식의 평가 결과가 언제나 참이면 무한루프에 빠진다 -> 탈출하기 위해서는 코드 블록 내에 if문과 break문으로 코드 블록을 탈출한다.


🌵 do...while 문
코드 블록을 먼저 실행하고 조건식을 평가.

let count = 0;
// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
do {
  count++;
} while (count < 3);

🌵 break 문
레이블 문, 반복문, switch 문의 코드 블록을 탈출한다.
이 외에 사용하면 SyntaxError가 발생함.
반복문을 더 이상 진행하지 않아도 될 때 불필요한 반복을 회피할 수 있다.


🌵 continue 문
반복문을 탈출하지 않고, 현시점에서 중단하여 반복문의 증감식으로 실행 흐름을 이동한다.

0개의 댓글

관련 채용 정보