此前的流程控制,都是我们预设了一个先有条件,现在for循环是重复做一件事情。一般而言,我们会设置一个索引,记录已经加到了多少,并记录结果。那么,至少定义两个变量。在for循环中,我们需要设置一个停止条件,否则就会一直for循环,就变成了死循环
for循环
先看下不用for循环的方式。
result := 0
此时定义一个result 0,如果要加到100次,我们需要相加100次
result += 1
result += 2
...
result += 100
如果现在使用for循环,for循环有三个子语句分别是初始化子语句,条件子语句,后值子语句。
for i := 1; i <= 100; i++ {}
如上。
- 初始化子语句,i := 1
初始化一个值
- 条件子语句: i < 100
当满足某个条件时候执行循环
- 后值子语句: i++
函数体执行完成后执行的代码。
整体的意思就是,i等于1,且i小于等于100,就开始执行i++语句快(反义则是i大于100就不执行)。如下:
package main
import "fmt"
func main(){
result := 0
for i:=1;i<=100;i++{
result += i
fmt.Println(i)
}
fmt.Println(result)
}
运行
[root@marksugar /opt/Golang]# go run for.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
5050
这里打印了i,i的确加了100次,结果是5050
!!! note
在go中只有for循环,没有其他的循环,如while等
for一个子语句
除了上述这种,还有其他的方式实现。比如一个子语句:
result = 0
i := 1
for i<= 100{
result += i
i++
}
package main
import "fmt"
func main(){
result := 0
i := 1
for i<= 100{
result += i
i++
}
fmt.Println(result)
}
运行
[root@marksugar /opt/Golang]# go run for2.go
5050
for死循环
在go中,死循环使用for即可
package main
import "fmt"
func main(){
i :=0
for {
fmt.Println(i)
i++
}
}
除此之外,for循环还有遍历的for range,我们在下一篇中讨论for range