E1018#
在这个循环表达式中没有 continue
,因此 loop
在这里是无用的。
当使用一个不包含 continue
语句的 loop
表达式时,将会出现这个错误。在 MoonBit 中,一个不包含任何 continue
语句的 loop
相当于一个只执行一次的块表达式,使得在这种情况下 loop
关键字是多余的。如果你需要从头重新开始循环,你应该添加一个 continue
语句,或者使用一个更简单的控制流结构,如 match
或 if
。
错误示例#
fn countdown(n : Int) -> Int {
let mut count = n
loop count {
_..<0 => break
_ => count = count - 1
}
return count
}
建议#
如果你需要重新开始循环,添加一个 continue
语句:
fn countdown(n : Int) -> Int {
let mut count = n
loop count {
_..<0 => break
_ => {
continue count - 1
}
}
return count
}
或者如果不需要使用 continue
,使用 if
/match
:
fn countdown(n : Int) -> Int {
let mut count = n
match count {
_..<0 => ()
_ => count = count - 1
}
return count
}