ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javascript 제어문
    front-end/Javascript 2023. 6. 21. 11:49
    반응형

     

    제어문이란?

    제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다.

    일반적인 코드는 위에서 아래 방향으로 순차적으로 실행된다.

     

     

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

    // 블록문
    {
    var foo = 10;
    }
    
    // 제어문
    var x = 1;
    if(x < 10){
    	x++;
    }
    
    // 함수 선언문
    function sum(a,b){
    return a + bl
    }

     

     

     

    2. 조건문 : 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. 조건식은 불리언 값으로 평가될 수 있는 표현식이다. (if ... else문과 switch 문으로 두 가지 조건문을 제공한다)

     

    - if ... else문 : 주어진 조건식의 평가 결과, 즉 논리적참 또는 거짓에 따라 실행할 코드 블록을 결정한다.
    조건식의 평가 결과가 true일 경우 if문의 코드 블록이 실행되고 false일 경우 else문의 코드 블록이 실행된다.

    if(조건식) {
    	// 조건식이 참이면 이 코드 블록이 실행
    }else {
    	// 조건식이 거짓이면 이 코드 블록이 실행
    }
    
    if(조건식1) {
    	// 조건식1이 참이면 이 코드 블록이 실행
    }else if(조건식2) {
    	// 조건식2가 거짓이면 이 코드 블록이 실행
    }else {
    	// 조건식1과 조건식2가 모두 거짓이면 이 코드 블록이 실행
    }

     

     

     

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

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

     

     

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

     

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

    for(변수 선언문 또는 할당문; 조건식; 증감식){
    	조건식이 참인 경우 반복 실행될 문
    }
    
    for (var i = 0; i < 2; i++){
    	console.log(i);
        }
    // 0 1

    - while문 : 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다. for문은 반복 횟수가 명확할 때 주로 사용하고 while문은 반복 횟수가 불명확할 때 주로 사용한다. while문은 조건문의 평가 결과가 거짓이 되면 코드 블록을 실행하지 않고 종료한다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제 변환하여 논리적 참, 거짓을 구별한다.

    var count = 0;
    
    // count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
    while(count < 3) {
    	console.log(count); // 0 1 2
        count++;
    }
    
    // 무한루프
    while(true) {...}

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

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

     

     

     

    5. break문 : switch문과 while문에서 살펴보았듯이 break문은 코드 블록을 탈출한다. 좀 더 정확히 표현하자면 코드 블록을 탈출하는 것이 아니라 반복문 또는 switch 문의 코드 블록을 탈출한다. 그 외에 break 문을 사용하면 SyntaxError(문법 에러)가 발생한다.

    if(true){
    	break // Uncaught SyntaxError
    }

     

     

     

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

    var string = "Hello World.";
    var search = 'l';
    var count = 0;
    
    for(var i = 0; i < string.lenght; i++){
    	// l이 아니면 현 지점에서 실행을 중단하고 반복문의 증감식으로 이동한다.
        if(stirng[i] !== search) continue++;
        count++;
    }
    console.log(count) // 3
    * 참고로 String.prototype.match 메서드를 사용해도 같은 동작을 한다. 
    
    // 동일 하다.
    for(var i = 0; i < string.lenght; i++){
    	// l이면 카운트를 증가시킨다.
        if(stirng[i] === search) count++;
    }

    위와 같이 if문 내에서 실행해야 할 코드가 한 줄이라면 continue문을 사용했을 때보다 간편하고 가독성도 좋다. 하지만 if문 내에서 실행해야 할 코드가 길다면 들여스기가 한 단계 더 깊어지므로 continue문을 사용하는 편이 가독성이 더 좋다.

     

     

    반응형

    'front-end > Javascript' 카테고리의 다른 글

    javascript 객체 리터럴  (0) 2023.06.28
    javascript 타입 변환과 단축 평가  (0) 2023.06.27
    javascript 연산자  (0) 2023.06.21
    javascript 데이터타입  (0) 2023.06.21
    html을 js로 삽입 할 때 요소 위치 설정하기  (0) 2023.06.18
Sua by Tistory.