[모던자바스크립트] 8장 - 제어문

Yongwoo Cho·2021년 11월 23일
0

TIL

목록 보기
27/98
post-thumbnail
post-custom-banner

블록문

블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 자바스크립트는 블록문을 하나의 실행 단위로 취급한다.

조건문

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

if...else문

if...else 문은 주어진 조건식의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.

if (조건식 1) {
  // 조건식 1 이 참일때 실행
  else if (조건식 2){
    // 조건식 2 가 참일때 실행
  }
  else{
    // 조건식 1,2 모두 거짓일 때 실행
  }
}

❌ if문과 else문은 2번이상 사용할 수 없다.

switch 문

switch 문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다. 일치하는 case문이 없다면 실행 순서는 default 문으로 이동한다.

switch(표현식) {
  case 표현식1:
    switch 문의 표현식과 표현식1이 일치하면 실행;
    break;
  case 표현식2:
    switch 문의 표현식과 표현식2가 일치하면 실행;
    break;
  default:
    switch 문의 표현식과 일치하는 case문이 없을 때 실행
}

✔ if...else문의 조건식은 boolean 값으로 평가되어야 하지만 switch문의 표현식은 boolean 값 보다는 문자열이나 숫자 값인 경우가 많다.

🤷‍♂️fall through 현상
case문을 실행 한 후 switch문을 탈출하지 않고 switch 문이 끝날 때까지 이후의 모든 case문과 default문을 실행하는 현상 , 따라서 break를 넣어줘야함

반복문

반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다. 그 후 조건식을 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행한다. 이는 조건식이 거짓일 때까지 반복된다.

for 문

for문은 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행한다.

for(변수 선언문 또는 할당문; 조건식; 증감식){
  조건식이 참인 경우 반복 실행될 문;
}

✔ for문의 변수 선언문, 조건식, 증감식은 모두 옵션이다
❗ 단, 어떤 식도 선언하지 않으면 무한루프가 된다.

while 문

while문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다. for문은 반복횟수가 명확할 때 주로 사용하고 while문은 반복 횟수가 불명확할 때 주로 사용한다.

var cnt = 0;

while (cnt < 3) {
  console.log(cnt); // 0 1 2
  cnt++;
}

do...while문

do...while 문은 코드 블록을 먼저 실행하고 조건식을 평가한다. 따라서 코드 블록은 무조건 한 번 이상 실행된다.

var cnt = 0;

do {
  console.log(cnt); // 0 1 2
  cnt++;
} while (cnt < 3);

break 문

break 문은 코드 블록을 탈출한다. 좀 더 정확히는 코드 블록을 탈출하는 것이 아니라 레이블 문, 반복문 또는 switch문의 코드 블록을 탈출한다.

❌ 이 외에 break문을 사용하면 SyntaxError(문법에러)가 발생한다.

레이블 문

식별자가 붙은 문으로 프로그램의 실행 순서를 제어하는데 사용한다
레이블 문을 탈출하려면 break문에 레이블 식별자를 지정한다.

start: console.log('start');

break start; // start 레이블 블록문을 탈출한다.

✔ 레이블 문은 중첩 for문 외부로 탈출할 때 유용하다
❗ 그 밖의 경우에 레이블 문을 사용하면 프로그램의 흐름이 복잡해져서 가독성이 나빠지고 오류를 발생시킬 가능성이 높아지기 때문에 일반적으로 권장하지 않는다.

continue 문

continue 문은 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다. break 문처럼 반복문을 탈출하지는 않는다.

profile
Frontend 개발자입니다 😎
post-custom-banner

0개의 댓글