golang基础(21.循环语句)
基本使用
与其它编程语言不同的是,Go 语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构。关键字 for 的基本使用方法与 PHP 类似,只是循环条件不含括号,比如我们要计算 1 到 100 之间所有数字之后,可以这么做:
package main
import "fmt"
func main() {
sum := 0
for i := 0; i <= 100; i++ {
sum += i
}
fmt.Println(sum) // 输出5050
}
无限循环
go不支持while和do-while语句,如果需要无限循环,可以通过不带条件的for语句实现:
package main
import "fmt"
func main() {
sum := 0
i := 0
for {
i++
if i > 100 {
break
}
sum += i
}
fmt.Println(sum) // 输出5050
}
可以看到,我们可以通过 break 语句来中断无限循环
for-range 结构
另外,对于可迭代的集合(数组、切片、字典),Go 语言还支持通过 for-range 结构对其进行循环遍历,关于这个循环结构的使用我们前面已经演示过,比如我们要遍历上面的切片 a,可以这么做:
package main
import "fmt"
func main() {
a := [3]int{1, 2, 3}
for k, v := range a {
fmt.Println(k, v)
}
}
`for rang`可以取出索引以及对应的值
条件循环
我们可以基于条件判断进行循环,只有满足指定条件才会执行循环中代码。
package main
import "fmt"
func main() {
sum := 0
for i := 0; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
}
跳出循环
go中允许使用continue和break来控制循环,其中break可以选择跳出的循环
package main
import "fmt"
func main() {
JLoop:
for i := 0; i <= 100; i++ {
if i == 5 {
fmt.Println("continue 跳出")
continue
}
for j := 0; j <= 100; j++ {
if i > 5 {
break JLoop
}
}
}
}
注意事项
综上,在 Go 语言中使用循环语句时,需要注意以下几点:
- 和条件语句、分支语句一样,左花括号 { 必须与 for 处于同一行;
- 不支持 whie 和 do-while 结构的循环语句;
- 可以通过 for-range 结构对可迭代集合进行遍历;
- 支持基于条件判断进行循环迭代;
- 与 PHP 一样,都允许在循环条件中定义和初始化变量,且支持多重赋值;
- Go 语言的 for 循环同样支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环。