break_label_on_switch_member 진단: break 라벨이 case/default 문장을 가리킬 때
break_label_on_switch_member 진단: break 라벨이 case/default 문장을 가리킬 때
break_label_on_switch_member는 switch 문 안의 case 절에서 쓴 break가 다른 case 절과 연결된 라벨을 가리킬 때 Dart 분석기가 알려주는 진단이에요.
본문
설명
분석기는 switch 문 안의 case 절에 있는 break가 다른 case 절과 연결된 라벨을 가리킬 때 이 진단을 만들어요.
예시
다음 코드는 라벨 l이 case 0 절과 연결되어 있기 때문에 이 진단을 만들어요.
void f(int i) {
switch (i) {
l:
case 0:
break;
case 1:
break l;
}
}
흔한 해결 방법
제어를 switch 다음의 문장으로 옮기려는 의도라면, break 문장에서 라벨을 제거해요.
void f(int i) {
switch (i) {
case 0:
break;
case 1:
break;
}
}
제어를 다른 case 블록으로 옮기려는 의도라면, break 대신 continue를 사용해요.
void f(int i) {
switch (i) {
l:
case 0:
break;
case 1:
continue l;
}
}