文章目录
- 1. 基本for循环(类似其他语言的while)
- 2. 经典for循环(初始化;条件;后续操作)
- 3. 无限循环
- 4. 使用break和continue
- 5 . 带标签的循环(可用于break/continue指定循环)
- 1、break带标签
- 2、continue带标签
Go语言中的for循环是唯一的循环结构,但可以通过不同形式实现各种循环需求。以下是Go中for循环的主要用法:
1. 基本for循环(类似其他语言的while)
go语言中没有while和do while操作,只能用基本for循环来代替while和do while。
基本语法:
for condition {// 循环体
}
示例代码:
以下for循环的执行顺序:
1、先判断i <= 3
2、执行大括号中的内容。
一直循环到判断条件不满足才退出。
i := 1
for i <= 3 {fmt.Println(i)i = i + 1
}
2. 经典for循环(初始化;条件;后续操作)
基本语法:
for initialization; condition; post {// 循环体
}
示例代码:
以下for循环的执行顺序:
1、先执行j := 7(这里可以不是定义,也可以是赋值,也可以省略)
2、进行condition判断,为true则进入第3步,false则退出for循环。
3、执行大括号中的内容。
4、执行post。
一直执行2、3、4直到2中判断为false。
for j := 7; j <= 9; j++ {fmt.Println(j)
}
3. 无限循环
基本语法:
for {// 无限循环体// 通常配合break使用
}
示例代码:
这个就相当于C语言中的while(1)语句。
for {fmt.Println("loop")break
}
4. 使用break和continue
1、break:跳出本层循环
2、continue:跳过本次循环
示例代码:
1、代码执行到break则直接退出这一层for循环,因为这里只有一层for循环,所以直接退出for循环。
2、代码执行到continue则直接进入循环,这里当n = 2的时候进入continue,则跳出本次循环,继续执行n++,再进行n <= 5判断,进入下一次循环。
for n := 0; n <= 5; n++ {if n%2 == 0 {continue}fmt.Println(n)if n > 3 {break}
}
5 . 带标签的循环(可用于break/continue指定循环)
1、break带标签
代码如下:
下面这段代码的输出结果:
0 0
0 1
0 2
1 1
当i = 1,j = 1的时候,跳出到标签处,跳出那一层循环,因此直接退出for循环。
outer:
for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if i == 1 && j == 1 {break outer // 跳出外层循环}fmt.Println(i, j)}
}
2、continue带标签
代码如下:
下面这段代码的输出结果:
0 0
0 1
0 2
1 0
2 0
2 1
2 2
当i = 1,j = 1的时候,跳出到标签处,跳出那一次循环,因此直接最外层i = 1的时候不继续往下执行。
outer:
for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if i == 1 && j == 1 {continue outer // 跳出外层循环}fmt.Println(i, j)}
}