Uknow's Lab.
article thumbnail

 

 

위와 같은 이중 for문이 있습니다.

위 코드에서 break문은 어떤 반복문을 탈출할까요?

가장 가까운 반목문인 안쪽 반복문 입니다.

 

하지만, j가 5가 될때 두 반복문 모두 탈출하고 싶다면 어떻게 해야 할까요?

 

 

 

for문 바깥쪽, 혹은 첫 번째 for문 안쪽에 flag 변수를 두고,

j == 5가 됬을 때, flag를 true로 바꿈으로써

두 반복문을 모두 탈출할 수 있습니다.

 

하지만 별도의 flag를 두어 관리하는게 조금 번거로워 방법을 찾아보던 중,

for문에 라벨링을 붙이는 방법을 알게 되었습니다.

 

 

 

바깥쪽  for문에 outer라는 이름으로 라벨링을 붙여주고,

안쪽 for문에서 해당 반복문에 break를 걸 수 있게 되었습니다.

바깥쪽 반복문을 탈출하므로 안쪽 반복문 역시 자연스레 탈출하게 됩니다.

 

 

 

이는 continue문에도 사용이 가능합니다.

 

 

물론 while문에도 사용이 가능합니다.

 

 

이와 같이 for, while문에 라벨링을 붙임으로써 더 효율적으로 반복문 제어가 가능합니다

하지만 무분별한 라벨링은

반복문의 흐름이 어떤지 파악하기 어렵게 하며,

코드의 가독성이 오히려 떨어질 수 있으므로

적절한 사용이 필요합니다.

 

실제 개발을 하다 보면 라벨링은 그리 흔하게 쓰이는 방법은 아니며,

주로 변수를 따로 두어 제어합니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.