跳到主要內容

break_label_on_switch_member

break 標籤指向 'case' 或 'default' 語句。

描述

#

當 switch 語句中某個 case 子句內的 break 語句帶有一個與另一個 case 子句關聯的標籤時,分析器會生成此診斷資訊。

示例

#

以下程式碼會產生此診斷資訊,因為標籤 l 與值 0 的 case 子句相關聯。

dart
void f(int i) {
  switch (i) {
    l: case 0:
      break;
    case 1:
      break l;
  }
}

常見修復

#

如果目的是將控制權轉移到 switch 語句之後的語句,則從 break 語句中移除標籤。

dart
void f(int i) {
  switch (i) {
    case 0:
      break;
    case 1:
      break;
  }
}

如果目的是將控制權轉移到不同的 case 程式碼塊,則使用 continue 而非 break

dart
void f(int i) {
  switch (i) {
    l: case 0:
      break;
    case 1:
      continue l;
  }
}