E4111

E4111#

break 语句的使用无效。

当您在循环的初始化、条件或更新语句中使用 break 语句时,就会发生此错误。

错误示例#

///|
pub fn f(x : Int, y : Int) -> Unit {
  for i = 0; i < x; i = i + 1 {
    for j = ({
            break
          })
        j < y
        j = j + 1 {
      //            ^^^^^ Error: The usage of break statement is invalid.
      println(i + j)
    }
  }
}

建议#

不要在循环的初始化、条件或更新语句中编写 break 语句。请将它放在循环体中。

///|
pub fn f(x : Int, y : Int) -> Unit {
  for i = 0; i < x; i = i + 1 {
    for j = 0; j < y; j = j + 1 {
      if i + j > 10 {
        break
      }
      println(i + j)
    }
  }
}

当未带标签的 break 直接位于带标签的代码块内时,也会出现此错误。退出代码块时请指定其标签:

///|
pub fn value_or_zero(value : Int?) -> Int {
  result~: {
    guard value is Some(result) else { break }
    result
  }
}
///|
pub fn value_or_zero(value : Int?) -> Int {
  result~: {
    guard value is Some(result) else { break result~ 0 }
    result
  }
}