Go For循环
在 Go 语言中,for
循环是唯一的循环结构,但它非常灵活,可以替代其他语言中的 while
和 for-each
循环。本文将详细介绍 for
循环的语法、使用场景以及实际应用。
1. 基本语法
Go 中的 for
循环有三种形式:
- 基本形式:类似于其他语言中的
for
循环。 - 条件形式:类似于
while
循环。 - 无限循环:没有条件,需要手动退出。
1.1 基本形式
基本形式的 for
循环语法如下:
go
for 初始化语句; 条件表达式; 后置语句 {
// 循环体
}
- 初始化语句:在循环开始前执行一次,通常用于初始化计数器。
- 条件表达式:在每次循环开始前检查,如果为
true
,则执行循环体。 - 后置语句:在每次循环结束后执行,通常用于更新计数器。
示例:
go
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
输出:
0
1
2
3
4
1.2 条件形式
Go 中的 for
循环可以省略初始化语句和后置语句,只保留条件表达式,这样就变成了类似于 while
循环的形式。
语法:
go
for 条件表达式 {
// 循环体
}
示例:
go
package main
import "fmt"
func main() {
i := 0
for i < 5 {
fmt.Println(i)
i++
}
}
输出:
0
1
2
3
4
1.3 无限循环
如果省略所有条件,for
循环将变成一个无限循环,直到使用 break
语句退出。
语法:
go
for {
// 循环体
}
示例:
go
package main
import "fmt"
func main() {
i := 0
for {
if i >= 5 {
break
}
fmt.Println(i)
i++
}
}
输出:
0
1
2
3
4
2. for
循环的实际应用
2.1 遍历数组或切片
for
循环可以用于遍历数组或切片。
示例:
go
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
for i := 0; i < len(numbers); i++ {
fmt.Println(numbers[i])
}
}
输出:
1
2
3
4
5
2.2 使用 range
关键字
range
关键字可以简化数组、切片、字符串、map 等数据结构的遍历。
语法:
go
for 索引, 值 := range 集合 {
// 循环体
}
示例:
go
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
fmt.Printf("索引: %d, 值: %d\n", index, value)
}
}
输出:
索引: 0, 值: 1
索引: 1, 值: 2
索引: 2, 值: 3
索引: 3, 值: 4
索引: 4, 值: 5
提示
如果不需要索引,可以使用 _
来忽略它:
go
for _, value := range numbers {
fmt.Println(value)
}
3. 嵌套循环
for
循环可以嵌套使用,用于处理多维数组或复杂的逻辑。
示例:
go
package main
import "fmt"
func main() {
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
}
输出:
i: 0, j: 0
i: 0, j: 1
i: 0, j: 2
i: 1, j: 0
i: 1, j: 1
i: 1, j: 2
i: 2, j: 0
i: 2, j: 1
i: 2, j: 2
4. 总结
for
循环是 Go 语言中唯一的循环结构,但它非常灵活,可以替代其他语言中的 while
和 for-each
循环。通过本文的学习,你应该已经掌握了 for
循环的基本语法、使用场景以及实际应用。
提示
练习:
- 编写一个程序,使用
for
循环计算 1 到 100 的和。 - 使用
range
关键字遍历一个字符串,并打印每个字符及其对应的 ASCII 码。