linuxea:go流程控制之for循环(14)


此前的流程控制,都是我们预设了一个先有条件,现在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

0 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2019-10-18分类: Golang

标签: Golang

发表评论