跳到主要内容

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;
  }
}