break와 continue는 코딩에서 굉장히 유용하게 사용되는 키워드 입니다.
두 제어문 모두 반복문을 제어하기 위해 쓰입니다.
코딩을 하다보면 2중반복문 혹은 n중반복문을 사용하게 되는 경우가 많은데요.
이렇게 중첩반복문에서는 원하는 대로 반복문을 컨트롤 하고 싶다면, 약간 특이한 형태의 반복문을 사용해야 합니다.
1 2 3 4 5 6 7 8 9 | for(let outLoop = 0; outLoop < 100; outLoop++){ for(let inLoop = 100; inLoop < 200; inLoop++){ if(inLoop >= 102){ break; } console.log("inLoop = " + inLoop); } console.log("outLoop = " + outLoop); } | cs |
위의 코드는 중첩 반복문에서 break를 사용한 모습입니다.
저 코드를 실행하면, inLoop는 늘 101 까지만 출력을하고 outLoop는 99까지 출력을 모두 마친채 종료됩니다.
즉, break는 해당 break가 속한 스코프의 반복문을 종료시킵니다. 이는 continue도 같습니다.
그러면 inner반복문에서 outer반복문을 종료시키려면 어떻게 해야 할까요?
1 2 3 4 5 6 7 8 9 | outer : for(let outLoop = 0; outLoop < 100; outLoop++){ inner : for(let inLoop = 100; inLoop < 200; inLoop++){ if(inLoop >= 102){ break outer; } console.log("inLoop = " + inLoop); } console.log("outLoop = " + outLoop); } | cs |
name : while(true){
break name;
}
위의 코드처럼 반복문에 태그를 붙여서 종료시킬 반복문을 명시할 수 있습니다.
위코드의 실행 결과는 inLoop만을 출력하고 outLoop는 출력되지 않습니다.
만약 저기서 4번라인의 코드를 break inner로 바꾼다면 아까 전의 코드와 같은 역할을 할 것입니다.
'web' 카테고리의 다른 글
[JS][HTML] 브라우저 이미지 캐싱 피하기 (0) | 2017.03.17 |
---|---|
[wed][HTML/CSS] vh/vw와 %의 차이 (0) | 2017.02.08 |
[web][jquery][jquery-ui] jquery color관련 animation 사용하기 jquery-ui.js (0) | 2017.01.13 |
[node][socket.io][redis] cluster사용시 socket.io와 redis (0) | 2016.11.24 |
[html][JavaScript] localStorage (0) | 2016.11.14 |