Go基础学习记录 - Go指南 - 流程控制语句:for

{app.params.name}}{app.params.name}}{app.params.name}}

环境

go version go1.10.1 darwin/amd64

 

for循环

Go 只有一种循环结构: for 循环。

基本的 for 循环由三部分组成,它们用分号隔开:

初始化语句:在第一次迭代前执行

条件表达式:在每次迭代前求值

后置语句:在每次迭代的结尾执行

 

初始化语句通常为一句短变量声明,该变量声明仅在 for 语句的作用域中可见。

注意:和 C、Java、JavaScript 之类的语言不同,Go 的 for 语句后面没有小括号,大括号 { } 则是必须的。演示如下

package main

import "fmt"

func main() {
	sum := 0
	for i := 0; i < 10; i++ {
		sum += i
	}

	fmt.Println(sum)
}

运行后结果如下

45

初始化语句和后置语句是可选的。演示如下

package main

import "fmt"

func main() {
	sum := 1
	for sum < 1000 {
		sum += sum
	}

	fmt.Println(sum)
}

运行后结果如下

1024

可能这里有疑惑

for sum < 1000 {
    sum += sum
}

实际上这里可以等价于如下

for ; sum < 1000; {
    sum += sum
}

for 是 Go 中的 “while”

此时你可以去掉分号:C 的 while 在 Go 中叫做 for 。跟上面是类似的

package main

import "fmt"

func main() {
	sum := 1
	for sum < 1000 {
		sum += sum
	}

	fmt.Println(sum)
}

在go中可以用for当做while来使用

 

无限循环

如果省略循环条件,该循环就不会结束,因此无限循环可以写得很紧凑。演示如下

package main

func main() {
	for {
	}
}

for range循环 - 数组循环

package main

import "fmt"

func main() {
	fruits:=[]string{"苹果", "香蕉", "橘子"}

	for i,fruit:=range fruits{
		fmt.Println(i,fruit)
	}
}

for range循环 - 字典循环

package main

import "fmt"

func main() {
	fruits := map[string]int{"苹果":15,"香蕉":20,"橘子":36}

	for fruit,price := range fruits{
		fmt.Println(fruit,price)
	}
}

 

版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/11


版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 小绒毛的足迹博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/11