JavaScirpt_8제어문

Yoon Tschoe·2022년 1월 14일
0

JavaScript

목록 보기
6/10

JavaScirpt 공부 정리
<모던 자바스크립트 Deep Dive>의 목차를 따릅니다. 책을 발제하는 것을 기본 골조로 하고, 개인이 공부한 내용을 추가합니다.


  • 제어문은 조건에 따라 코드 블록을
    • 실행(조건문)하거나,
    • 반복 실행(반복문) 할 때 사용한다.
  • 일반적으로 코드는 순차적으로 실행되기에, 제어문은 코드의 흐름을 이해하기 어렵게 만들어 가독성을 해치는 단점이 있다.
  • 이러한 단점을 해소하기 위해 forEach, map, filter, reduce 같은 고차 함수를 사용한 함수평 프로그래밍 기법을 통해 제어문의 사용을 억제하여 복잡성을 해결할 수 있다.

1.조건문

  • 조건문: 주어진 조건식(불리언 값으로 평가될 수 있는 표현식)의 결과에 따라 블록문의 실행을 결정한다.

1) if ... else 문

if (조건식1) { 
  // 조건식1이 참이면 이 코드 블록이 실행됨
} else if (조건식2) {
  //조건식2가 참이면 이 코드 블록이 실행됨
} else {
  // 조건식 1,2가 모두 거짓이면 이 코드 블록이 실행됨
}
var x = 2;
var kind;

if (x % 2) { // 2 % 2는 0이다. 이때 0이 false로 암묵적 강제변환된다. 
  kind = 'odd';
} else {
  kind = 'even';
}
console.log(kind); // even

// 삼항 연산자
var kind = x % 2 ? 'odd' : 'even';

2) switch 문

  • if ... else 문의 조건식이 boolean값을 따진다면, switch 문은 논리적 참,거짓보다는 다양한 case에 따라 실행할 코드 블록을 결정할 때 사용한다.
  • break문이 없다면 case문의 표현식과 일치하지 않더라도, 실행 흐름이 다음 case 문으로 연이어 이동한다.
switch (표현식) {
  case 표현식1:
    switch문의 표현식과 표현식1이 일치하면 실행될 문;
    break;
  case 표현식2:
    switch문의 표현식과 표현식2가 일치하면 실행될 문;
    break;
  default: // 선택사항
    switch문의 표현식과 일치하는 case문이 없을 때 실행될 문;
}
  • !break문이 없다면 case문의 표현식과 일치하지 않더라도 실행 흐름이 다음 case문으로 연이어 이동한다. 따라서 switch문을 빠져나기 위해서 break문이 필수적이다.
    • default문의 실행이 종료되면 switch문을 빠져나가기에 여기에는 별도의 default문 필요 없다.
    • fall through가 필요한 경우가 있기는 함.

2. 반복문

조건식의 평가 결과가 참인 경우 코드 블록을 실행한다.

1) for 문

 for (a.변수 선언문 또는 할당문; b.조건식; d.증감식) {
   c.조건식이 참일 경우 반복 실행될 문;
 }
  • 위에 표기한 for 문의 실행 순서에 유의하자.

2) while 문

var count = 0;

while (count < 3) {
  console.log(count);
  count++;
}  

3) do ... while 문

  • 코드 블록을 먼저 실해하고 조건식을 평가한다.
  • 따라서 코드 블록은 무조건 한번 이상 실행된다.
var count = 0;

do {
  console.log(count);
  count++;
} while (count < 3);

3. break/continue 문

둘다 반복문에서 쓰임 + break의 사용처는 조금 더 넓음

1) break문

  • 목적: 아래와 같은 문의 코드 블록 탈출
  • 레이블 문, 반복문, switch 문의 코드 블록에서만 사용된다.

2) continue 문

  • break문처럼 반복문을 탈출하지는 않는다.
  • 반복문의 코드 블록 실행을 현 지점에서 중단하고, 반복문의 증감식으로 실행 흐름을 이동시킨다.
  • 💫TIP countinue 문을 사용했을 때 좋은 경우: countinue 문이 건너띄지 않을 경우 만나는 if문 내에서 실행해야 할 코드가 길 경우.
// 문자열에서 특정 문자의 개수를 세는 예

var string = 'Hello World';
var search = 'l';
var count = 0;

// countinue 문 사용할 경우
for (var i = 0; i < string.length; i++ ) {
  if (string[i] !== search) continue;
  count++;
}

// if문 내 실행 코드가 짧기에 countinue 문 대신 다른 방법 추천
for (var i = 0; i < string.length; i++ ) {
  if (string[i] === search) count++;
}
profile
프론트엔드 개발자를 목표로 하는 전 미술기획자

0개의 댓글