break_label_on_switch_member 진단: break 라벨이 case/default 문장을 가리킬 때

break_label_on_switch_member 진단: break 라벨이 case/default 문장을 가리킬 때

break_label_on_switch_memberswitch 문 안의 case 절에서 쓴 break가 다른 case 절과 연결된 라벨을 가리킬 때 Dart 분석기가 알려주는 진단이에요.

출처: break_label_on_switch_member

본문

설명

분석기는 switch 문 안의 case 절에 있는 break가 다른 case 절과 연결된 라벨을 가리킬 때 이 진단을 만들어요.

예시

다음 코드는 라벨 lcase 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;
  }
}

더 알아보기