break 문은 대부분의 언어에 있는 키워드다.
dart에도 당연히 있다.
기본적으로 반복문에서 특정 조건을 검사하고 가장 안쪽의 루프를 탈출하는 역할을 한다.
continue는 break에 비하면 상대적으로 마이너하지만 역시 많은 언어에서 채택하고 있다.
break와 continue는 해당 명령이 속한 가장 안쪽의 루프에 대해서 작동하는데
nested loop가 되면 한꺼번에 탈출하고 싶은 욕구가 생긴다.
goto를 아무리 쓰지 말라고 하지만 이럴때는 필요하다는 생각이 든다.
(3,2) 에서 테스트를 끝내고 싶다. |
실패! 어림도 없이 j 루프만 빠져나갔다. |
dart에서는 반복문에 라벨을 지정할 수 있다.
break [label];
continue [label];
을 통해서 해당 라벨이 지정된 반복문을 대상으로 할 수 있다.
바깥 i 루프 위에 outer: 가 지정된 것을 확인하자.
break가 outer 라벨이 달린 루프에 적용된다. |
정의가 구현되었다. |
이런 라벨은 dart 표준 라이브러리에서도 찾아볼 수 있다.
console에서 한 줄을 입력받는 stdin.readLineSync() 에서도 쓰인다.
stdio.dart (readLineSync) 의 일부 |