go之for循环
循环介绍
在go中,只有for循环,没有其他循环关键字,没有while循环,也没有do while
通过for循环是可以实现 类似于while的功能
语法
for 变量初始化;条件;自增{
循环体的内容
}
重点记忆:for关键字后三段,都可以省略不写
break和continue的使用方法和python的一样
for循环使用
基本使用,打印0-9,变量定义需要简略声明方式
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
省略第一部分,和上面的区别在于i的作用域范围不一样,这个i在for外包还有效
package main
import "fmt"
func main() {
i := 0
//var i =0
//var i int = 0
for ; i < 10; i++ { // 第一个分号必须写
fmt.Println(i)
}
}
省略第三部分
package main
import "fmt"
func main() {
for i := 0; i < 10; { // 分号必须写
fmt.Println(i)
i++
}
}
省略第一部分和第三部分
这就是while循环
package main
import "fmt"
func main() {
i := 0
//for ;i < 10; { // 分号可以不写
for i < 10 { // 分号可以不写
fmt.Println(i)
i++
}
}
三部分全部省略
死循环,等同于 for true{}
package main
import "fmt"
func main() {
for ; ; {
fmt.Println("hello world")
}
}
range关键字
上面的for循环都是基于索引的循环,python中没有基于索引的循环,python中都是基于迭代的循环,python中的for循环,都是可迭代对象。
go中基于索引的和基于迭代的
基于迭代一般用法
package main
import "fmt"
func main() {
var a [3]int=[3]int{4,5,6}
for i:=0;i<len(a);i++{ // 基于索引
fmt.Println(a[i])
}
}
使用range关键字
package main
import "fmt"
func main() {
var a [3]int=[3]int{4,5,6}
for i,v:=range a{ //range 在go中是关键字
fmt.Println(i,v)
}
}
//结果
//0 4
//1 5
//2 6
如果只想要值
package main
import "fmt"
func main() {
var a [3]int=[3]int{4,5,6}
for _,v:=range a{ //range 在go中是关键字
fmt.Println(v)
}
}

浙公网安备 33010602011771号