반응형
이번에는 Label(이하, 레이블)에 대해서 살펴보려 한다.
반복문에 레이블을 붙이고, C언어에서 사용되는 goto문과 같이 break나 continue 구문을 사용해 반복문의 어느 위치에서 작업을 멈추고 어느 위치에서 다시 수행할지를 알려줄 수 있다.
● 사용방법
레이블을 사용하는 방법은 아래와 같다.
label:
statement;
● 사용예시
아래는 레이블의 break을 활용한 예제이다.
let sum = 0, a = 1;
// Label for outer loop
outerloop: while (true) {
a = 1;
// Label for inner loop
innerloop: while (a < 3) {
sum += a;
if (sum > 12) {
// Break outer loop from inner loop
break outerloop;
}
console.log("sum = " + sum);
a++;
}
}
위의 코드를 예시로 출력결과를 예상해 보자.
- outerloop는 while문의 true 가 종료 조건으로 무한 반복된다.
- innerloop의 while 내부에 sum이 12를 초과하면 " break outerloop; " 레이블의 break를 활용하여 outerloop를 종료시킨다.
- innerloop의 while문의 종료 조건은 a가 3 이상이다.
- innerloop에서 루프를 돌 때마다 a가 1씩 증가된다.
이와 같이 해당 코드는 sum이 12보다 클 때 종료가 되는 것을 볼 수 있으며, console에 아래와 같이 출력되는 것을 확인할 수 있다.
// 출력 결과
sum = 1
sum = 3
sum = 4
sum = 6
sum = 7
sum = 9
sum = 10
sum = 12
아래는 레이블의 continue을 활용한 예제이다.
let sum = 0, a = 1;
// Label for outerloop
outerloop: while (sum < 12) {
a = 1;
// Label for inner loop
innerloop: while (a < 3) {
sum += a;
if (a === 2 && sum < 12) {
// Jump to outer loop from inner loop
continue outerloop;
}
console.log("sum = " + sum + " a = " + a);
a++;
}
}
위의 코드를 예시로 출력결과를 예상해 보자.
- outerloop는 while문의 종료조건은 sum이 12보다 크면 종료된다.
- innerloop의 while 내부에 a가 2이면서 sum 이 12보다 작으면 outerloop가 continue 되어 아래의 콘솔을 실행시키지 않는다.
- innerloop의 while문의 종료 조건은 a가 3 이상이다.
- innerloop에서 루프를 돌 때마다 a가 1씩 증가된다.
이와 같이 해당 코드는 sum이 12보다 클 때 종료가 되는 것을 볼 수 있으며, console에 아래와 같이 출력되는 것을 확인할 수 있다.
//출력 결과
sum = 1 a = 1
sum = 4 a = 1
sum = 7 a = 1
sum = 10 a = 1
sum = 12 a = 2
아래는 블록에 레이블을 사용한 예시이다.
blockOfCode: {
console.log('This part will be executed');
break blockOfCode;
console.log('this part will not be executed');
}
console.log('out of the block');
첫 번째 'This part will be executed'를 출력 후 blockOfCode 레이블의 break를 통해 해당 블록의 코드가 종료된 것을 출력을 통해 볼 수 있다.
//출력 예시
This part will be executed
out of the block
반복문이 아닌 레이블은 break만 가능
반응형