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号
浙公网安备 33010602011771号