学习 golang 循环

在 golang 中只有一种循环结构那就是 for 循环

for 循环基本格式声明

for i := 0; i < 10; i++ {
	fmt.Println(i)
 }

变种 1. 初始化循环条件可以提出来

var i = 5
    for ; i < 10; i++ {
        fmt.Println(i)
 }

变种 2. 更新循环的语句可以写里面

var i = 5
	for i < 10 {
	    fmt.Println(i)
	    i++
}

死循环(无限循环)

for {
    fmt.Println("我是无限循环")
}

for range 循环

s := "hello world"
for index, value := range s {
    fmt.Printf("%d %c\n", index, value)
}

console输出结果为:
0 h
1 e
2 l
3 l
4 o
5
6 w
7 o
8 r
9 l
10 d

循环流程控制之 continue

for i := 0; i < 10; i++ {
	//当i为3的时候break会结束整个循环
	if i == 3 {
		//当i为3的时候跳过此次循环
		fmt.Println("跳过数字", i)
		continue
	}
	fmt.Println(i)
}

console输出结果:
0
1
2
跳过数字 3
4
5
6
7
8
9

循环流程控制之 break

for i := 0; i < 10; i++ {
	//当i为3的时候break会结束整个循环
	if i == 3 {
		fmt.Println("over!")
		break
	}
	fmt.Println(i)
}

console输出结果:
0
1
2
over!

Goto 语句

goto 语句, 用于跳出多层循环

for i := 0; i < 10; i++ {
	for j := 'A'; j < 'Z'; j++ {
		if j == 'C' {
			goto xx //跳到指定的标签 break和continue都可以加标签
		}
		fmt.Printf("%v-%c\n", i, j)
	}
}

console输出结果:
0-A
0-B
over

小练习(用 for 循环写一个九九乘法表)

for i := 1; i < 10; i++ {
		for j := 1; j < i+1; j++ {
			fmt.Printf("%d * %d = %d  ", j, i, i*j)
		}
		fmt.Println()
	}

console输出结果:
1 * 1 = 1
1 * 2 = 2  2 * 2 = 4
1 * 3 = 3  2 * 3 = 6  3 * 3 = 9
1 * 4 = 4  2 * 4 = 8  3 * 4 = 12  4 * 4 = 16
1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25
1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36
1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49
1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64
1 * 9 = 9  2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81