Go 语言提供了灵活的循环语句,帮助开发者在代码中重复执行某些操作。与许多编程语言不同,Go 只有一种循环结构,即 for
循环。尽管 Go 语言没有 while
或 do-while
循环,for
循环本身足以实现所有常见的循环模式。
📖 目录
1. for 循环
for
是 Go 语言唯一的循环结构。它不仅可以用于实现常见的 for
循环,还能替代 while
和 do-while
循环。
1.1 基本语法
for 初始化; 条件; 迭代 {
// 循环体
}
- 初始化:循环开始时执行一次的代码,一般用于声明和初始化变量。
- 条件:每次循环前都会判断的条件,当条件为
true
时执行循环体;为false
时跳出循环。 - 迭代:每次循环结束后执行的操作,通常用于更新循环变量。
示例:
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
}
输出:
1
2
3
4
5
2. for 循环的初始化、条件判断与迭代
在 Go 中,for
循环的三个部分——初始化、条件和迭代—是可选的,可以根据需要省略某些部分来控制循环。
2.1 只包含条件的 for
循环
如果你省略了初始化和迭代部分,for
循环将相当于一个 while
循环,只有条件部分。
示例:
package main
import "fmt"
func main() {
i := 1
for i <= 5 {
fmt.Println(i)
i++
}
}
输出:
1
2
3
4
5
2.2 无限循环(死循环)
如果省略了所有三部分,则 for
循环将变成一个无限循环,类似于 while (true)
或 for (;;)
。这通常用在你想不断执行某些操作,直到某个条件发生时。
示例:
package main
import "fmt"
func main() {
i := 1
for {
fmt.Println(i)
i++
if i > 5 {
break
}
}
}
输出:
1
2
3
4
5
3. 死循环
死循环(无限循环)用于没有明确条件的情况下持续执行操作,通常在等待用户输入或处理持续任务时使用。可以通过 break
或其他条件来退出循环。
示例:
package main
import "fmt"
func main() {
i := 1
for {
fmt.Println(i)
i++
if i == 4 {
break
}
}
}
输出:
1
2
3
4. for 循环的简写形式
Go 语言的 for
循环可以有简写形式,具体如下:
- 省略初始化:不写初始化部分,可以将其放在外部。
- 省略条件判断:不写条件判断部分,默认为
true
。 - 省略迭代:不写迭代部分。
示例:
package main
import "fmt"
func main() {
i := 1
for i <= 5 {
fmt.Println(i)
i++
}
}
上面的代码等价于:
package main
import "fmt"
func main() {
i := 1
for {
if i > 5 {
break
}
fmt.Println(i)
i++
}
}
5. break 和 continue 语句
在循环体内,break
和 continue
语句可以控制循环的执行流程。
break
语句:跳出当前循环,结束循环的执行。continue
语句:跳过当前循环的剩余部分,继续下一次循环。
5.1 使用 break
跳出循环
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
break // 当 i 为 3 时,跳出循环
}
fmt.Println(i)
}
}
输出:
1
2
5.2 使用 continue
跳过循环
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i == 3 {
continue // 当 i 为 3 时,跳过此次循环
}
fmt.Println(i)
}
}
输出:
1
2
4
5
6. 参考资料
Go 语言的 for
循环结构简单且强大,通过灵活的语法形式,能够应对多种不同类型的循环需求。从基本的计数循环到无限循环,再到控制循环流的 break
和 continue
,Go 提供了丰富的选择来高效地处理循环逻辑。
发表回复