V语言中只有一个循环结构for
。
fn main() { numbers := [1, 2, 3, 4, 5] for num in numbers { println(num) } names := ['Sam', 'Peter'] for i, name in names { println('$i) $name') // Output: 0) Sam } // 1) Peter }
for...in
循环用于遍历数组的元素。如果需要索引,则可以使用 for index,value in
的形式。
fn main() { mut sum := 0 mut i := 0 for i <= 100 { sum += i i++ } println(sum) // ==> "5050" }
这种形式的循环类似于其他语言中的 while
循环。一旦布尔条件求值为false,循环将停止迭代。
同样,和if
类似,循环的条件没有括号,而循环体需要。
fn main() { mut num := 0 for { num++ if num >= 10 { break } } println(num) // ==> "10" }
循环条件可以省略,这会导致无限循环。
fn main() { for i := 0; i < 10; i++ { println(i) } }
最后,还有传统的C风格循环。 它比while
形式更安全,因为后者很容易忘记因更新计数器而陷入死循环。
在这里i
不需要用 mut
声明,因为它在每次循环中都被重新定义并赋值。