6. 循环:while、for、break 与 continue

递归和 map/fold 之外,Dawn 也有普通循环:while 条件循环、for x in 列表for i in a..b(含 a 不含 b)。break 提前退出最内层循环,continue 跳到下一轮; 它们是 Never 类型的表达式,不能穿过 lambda 边界。

pub fn main() -> Unit !io = {
  var sum = 0
  for i in 0..5 {
    if i == 3 { continue }
    sum = sum + i
  }
  println("$sum")

  var n = 0
  while true {
    n = n + 1
    if n * n > 30 { break }
  }
  println("$n")
}
在 Playground 打开
7
6