JavaScript 6장 - 딥 다이브 (3)
포스트
취소

JavaScript 6장 - 딥 다이브 (3)

JavaScript

모던 자바스크립트

제어문 93p~

  • 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다.
  • 일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행되며 제어문을 사용하여 인위적으로 흐름을 제어할 수 있다.
  • 코드의 실행 순서가 변경되면 단순히 위에서 아래로 순차적으로 진행하는 직관적인 코드의 흐름을 혼란스럽게 만들기 때문에 가독성을 해칠 수 있다는 단점이 있다.

8.1 블록문

  • 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 한다.
  • 블록문은 단독으로 사용할 수도 있지만 일반적으로 제어문이나 함수를 정의할 때 사용한다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    {
      var foo = 10;
    } // 블록문
    
    var x = 1;
    if (x < 10) {
      x++;
    } // 제어문
    
    function sum(a, b) {
      return a + b;
    } // 함수 선언문
    

8.2 조건문

  • 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다.
  • if else문과 switch문이 있다.

8.2.1 if…else 문

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

    1
    2
    3
    4
    5
    
    if (조건식) {
      // 조건식이 참이면 코드 블록 실행
    } else {
      // 조건식이 거짓이면 코드 블록 실행
    }
    
  • 조건식을 추가하여 조건에 따라 실행될 코드 블록을 늘리고 싶으면 else if문을 사용한다.

    1
    2
    3
    4
    5
    6
    7
    
    if (조건식1) {
      // 조건식 1이 참이면 코드 블록 실행
    } else if (조건식2) {
      // 조건식 2가 참이면 코드 블록 실행
    } else {
      // 조건식 1과 2가 모두 거짓이면 코드 블록 실행
    }
    
  • if문과 else문은 2번 이상 사용할 수 없지만 else if문은 여러 번 사용할 수 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    var num = 2;
    var kind;
    
    if (num > 0) {
      kind = "양수";
    }
    console.log(kind); // 양수
    
    if (num > 0) {
      kind = "양수";
    } else {
      kind = "음수";
    }
    console.log(kind); // 양수
    
    if (num > 0) {
      kind = "양수";
    } else if (num < 0) {
      kind = "음수";
    } else {
      kind = "";
    }
    console.log(kind); // 양수
    
  • 블록 내의 문이 하나뿐이라면 생략할 수 있다.

    1
    2
    3
    4
    5
    6
    
    var num = 2;
    var kind;
    
    if (num > 0) kind = "양수";
    else if (num < 0) kind = "음수";
    else kind = "";
    
  • 대부분의 if ...else 문은 삼항 조건 연산자로 바꿔 쓸 수 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    
    var x = 2;
    var result;
    
    if (x % 2) result = "홀수";
    else result = "짝수";
    
    // 위의 코드는 아래와 같다.
    var result = x % 2 ? "홀수" : "짝수";
    
  • 만약 경우의 수가 세 가지라면 다음과 같이 쓸 수 있다.

    1
    
    var kind = num ? (num > 0 ? "양수" : "음수") : "";
    

8.2.2 switch문

  • 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮긴다.
  • case문은 상황을 의미하는 표현식을 지정하고 콜론으로 마치며, 그 뒤에 실행할 문들을 위치시킨다.
  • switch문과 일치하는 case문이 없다면 실행 순서는 default문으로 이동되며. default문은 선택 사항으로, 사용할 수도 있고 사용하지 않을 수도 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    switch(표현식){
      case 표현식1 :
        switch 문의 표현식과 표현식1이 일치하면 실행될 ;
        break;
      case 표현식2 :
        switch 문의 표현식과 표현식2가 일치하면 실행될 ;
        break;
      default:
        switch 문의 표현식과 일치하는 case 문이 없을  실행될 
    }
    
  • if ...else문의 조건식은 불리언 값으로 평가되어야 하지만, switch문의 표현식은 문자열이나 숫자 값인 경우가 많다.
  • if ...else문은 논리적 참,거짓으로 실행할 코드 블록을 결정하고, switch문은 논리적 참,거짓보다는 다양한 상황에 따라 실행할 코드 블록을 결정할 때 사용한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.