13 控制结构之for循环
在上一篇中,我们详细讨论了 if
语句的使用方法,它帮助我们根据条件来控制程序的执行流程。而在本篇中,我们将探讨 for
循环,这是 Go 语言中最常用的控制结构之一。for
循环可以用于重复执行某段代码,直到满足特定条件为止。
for
循环的基本语法
Go 语言中的 for
循环有多种形式,但其基本语法看起来如下:
for 初始化; 条件; 迭代 {
// 循环体
}
1. 经典的 for
循环
我们来看一个简单的示例,计算从 1 到 5 的和:
package main
import "fmt"
func main() {
sum := 0
for i := 1; i <= 5; i++ {
sum += i
}
fmt.Println("从 1 到 5 的和是:", sum)
}
在这个例子中:
初始化
是i := 1
,表示我们从 1 开始计数。条件
是i <= 5
,表示当i
小于等于 5 时继续执行循环。迭代
是i++
,表示每次循环结束后i
自增 1。
该程序输出的结果是:
从 1 到 5 的和是: 15
2. 仅有条件的 for
循环
有时候我们可以省略循环的初始化和迭代部分,只保留条件部分。这种情况下,通常会在循环体内部进行变量的更新。例如,使用一个无限循环并在内部进行某种控制:
package main
import "fmt"
func main() {
i := 1
for i <= 5 {
fmt.Println(i)
i++
}
}
这段代码会输出:
1
2
3
4
5
3. 省略所有部分的 for
循环
在 Go 语言中,我们可以使用一个无限循环,通过 break
语句手动终止循环。下面的例子展示了这一点:
package main
import "fmt"
func main() {
i := 1
for {
if i > 5 {
break
}
fmt.Println(i)
i++
}
}
同样,这里输出的是:
1
2
3
4
5
4. 使用 continue
语句跳过当前循环
continue
语句可以用于跳过当前迭代的剩余代码,直接进入下一次循环。例如,我们可以让程序跳过偶数,只打印奇数:
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i%2 == 0 {
continue // 跳过偶数
}
fmt.Println(i)
}
}
这段代码的输出是:
1
3
5
5. 结合范围的 for
循环
Go 语言的 for
循环还可以用于遍历数组、切片、映射等类型数据。以下是遍历切片的例子:
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30, 40, 50}
for index, value := range numbers {
fmt.Printf("索引: %d, 值: %d\n", index, value)
}
}
输出结果:
索引: 0, 值: 10
索引: 1, 值: 20
索引: 2, 值: 30
索引: 3, 值: 40
索引: 4, 值: 50
这段代码使用了 range
关键字,它可以方便地获取切片的索引和值。
总结
在本篇中,我们探讨了 Go 语言中 for
循环的各种用法,包括经典的循环形式、条件控制、无限循环以及结合 continue
和 range
的应用。for
循环是处理重复任务的强大工具,是掌握 Go 语言的基础之一。
下一篇将讨论 switch
语句,它是一种更为简洁的条件选择结构,让我们期待这个新的学习环节!