return / break / continue

🔽  return

  • 반복문을 종료 시키기도 하지만 값을 반환하고 함수 자체를 종료

  • 함수에서 사용하지 않으면 에러가 발생
    ⇒ 함수는 return을 사용하지 않아도 항상 값을 반환함 (기본값은 undefined)

    const number = () => {
        for (let i = 0; i < 10; i++ ) {
            if(i===5) {
                return i;
            }
            console.log(i)
        }
    }
    
    console.log('종료')
    number()
    
    // 0 , 1 , 2 , 3 , 4 , 종료



🔽 break

  • 반복문을 더 이상 진행하지 않아도 될 때 불필요한 반복을 회피할 수 있어서 유용

  • 레이블문(식별자가 붙은 문), 반복문(for, for...in, for...of, while, do...while), switch문의 코드 블록 탈출
    => 그 외에 break문을 사용하면 SyntaxError(문법 에러) 발생

    if(true) {
        break; //SyntaxError
    }

레이블문 ?

  • 중첩된 for문 외부로 탈출할 때 유용 ( 그 외는 권장X)

    foo: {
        console.log(1);
        break foo;  //foo 레이블 블록문을 탈출.
        console.log(2);
    }
    outer : for (lse i = 0; i < 3; i++) {
        for (let i = 0; i < 3; i++) {
            if (i + j === 3) break outer;
        }
    }

    예) 문자열에서 해당 문자가 처음 있는 인덱스 찾기

    const string = 'Hello World'
    let index;
    
    for(let i = 0; i < string.length; i++) {
        if(string[i] === 'l') {
            index = i;
            break;
        }
    }
    
    // 2



🔽 continue

  • 특정 조건이 주어졌을 때, 조건에 만족하면 명령을 건너뛰고 다음으로 넘어감

  • 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동

    예) 문자열에서 해당 문자가 몇개나 있는지 카운트

    const string = 'Hello World'
    let index;
    
    for(let i = 0; i < string.length; i++) {
        if(string[i] !== 'l') continue;
        count++ //만약 문자열에 l이 없으면 이 줄이 실행되지 않고 i++로 진행
        }
    }
    
    // 3
  • continue문을 안쓸수도있지만,
    사용했을 경우 실행코드가 많다면 if문 밖에서 사용하는게 가독성이 좋음

    ```jsx
    for (let i = 0; i < string.length; i++) {
    	if(string[i] === search) {
    		count++;
    		//코드
    		//코드
    		//코드
    	}
    }
    ```
    
    ```jsx
    🌟
    for (let i = 0; i < string.length; i++) {
    	if(string[i] !== search) continue;
    
    	count++;
    	//코드
    	//코드
    	//코드
    }
    ```


공부하며 정리&기록하는 ._. 씅로그

좋은 웹페이지 즐겨찾기