continue 문에 쓰는 레이블은 반복문이나 switch 멤버에 있어야 해요
continue 문에 쓰는 레이블은 반복문이나 switch 멤버에 있어야 해요
continue 문에서 쓴 레이블이 반복문이나 switch 멤버에 정의되지 않았을 때 분석기가 이 진단을 띄워줘요. (이전에는 continue_label_on_switch라고 불렸어요.)
출처: The label used in a continue statement must be defined on either a loop or a switch member
본문
continue 문의 레이블이 switch 문에 붙어 있는 레이블로 해석될 때 분석기가 이 진단을 만들어요. continue 레이블은 반복문이나 switch의 case(멤버)를 가리켜야 하는데, switch 문 전체를 가리키면 안 돼요.
다음 코드는 switch 문을 가리키는 레이블 l을 continue 문에서 쓰고 있어서 이 진단이 나와요.
void f(int i) {
l:
switch (i) {
case 0:
continue l;
}
}
고치는 방법
필요한 제어 흐름을 다른 방식으로 구현해 보세요. 예를 들어 switch 문을 다시 실행하는 반복문을 도입하면 돼요.