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++;
    	//코드
    	//코드
    	//코드
    }
    ```
  • 공부하며 정리&기록하는 ._. 씅로그