Appearance
控制流(Control Flow)
程序不总是从上到下顺序执行——有时需要重复做某事,有时需要根据条件选择不同的路径。这就是控制流要解决的问题。
for 循环(For Loop)
💡 概念说明
当你需要重复执行某段代码时,用 for 循环。Go 语言只有 for 一种循环,但它可以实现多种循环方式。
📝 基本用法
go
package main
import "fmt"
func main() {
// 打印 5 次问候语
for i := 0; i < 5; i++ {
fmt.Println("你好,这是第", i+1, "次问候")
}
}运行结果:
你好,这是第 1 次问候
你好,这是第 2 次问候
你好,这是第 3 次问候
你好,这是第 4 次问候
你好,这是第 5 次问候提示
for 循环的三部分:i := 0(初始值) ; i < 5(继续条件) ; i++(每次递增)
📝 省略初始值和递增
go
package main
import "fmt"
func main() {
count := 0
// 只保留条件部分
for count < 3 {
fmt.Println("计数:", count)
count++
}
}运行结果:
计数: 0
计数: 1
计数: 2📝 无限循环
go
package main
import "fmt"
func main() {
counter := 0
// 不写任何条件,就是无限循环
for {
fmt.Println("循环次数:", counter)
counter++
if counter >= 3 {
break // 跳出循环
}
}
}运行结果:
循环次数: 0
循环次数: 1
循环次数: 2💪 练习题
练习 1: 用 for 循环计算 1 到 10 的总和,并打印结果
点击查看答案
go
package main
import "fmt"
func main() {
sum := 0
for i := 1; i <= 10; i++ {
sum = sum + i
}
fmt.Println("1到10的总和是:", sum)
}练习 2: 打印 1 到 20 之间的所有偶数
点击查看答案
go
package main
import "fmt"
func main() {
for i := 1; i <= 20; i++ {
if i%2 == 0 {
fmt.Println(i)
}
}
}while 风格的循环
💡 概念说明
Go 没有 while 关键字,但 for 可以当 while 用——只写条件部分即可。
📝 代码示例
go
package main
import "fmt"
func main() {
temperature := 30
// 类似其他语言的 while(temperature > 25)
for temperature > 25 {
fmt.Println("当前温度:", temperature, "度,正在降温...")
temperature = temperature - 2
}
fmt.Println("降温完成,当前温度:", temperature, "度")
}运行结果:
当前温度: 30 度,正在降温...
当前温度: 28 度,正在降温...
当前温度: 26 度,正在降温...
降温完成,当前温度: 24 度💪 练习题
练习: 从 100 开始,每次减 7,直到小于 50 为止,打印每一步的值
点击查看答案
go
package main
import "fmt"
func main() {
number := 100
for number >= 50 {
fmt.Println(number)
number = number - 7
}
}if 条件判断(If Statement)
💡 概念说明
根据条件决定是否执行某段代码。可以单独使用 if,也可以配合 else(否则)使用。
📝 基本 if
go
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("你已经成年了")
}
}运行结果:
你已经成年了📝 if-else
go
package main
import "fmt"
func main() {
score := 75
if score >= 60 {
fmt.Println("及格了!")
} else {
fmt.Println("需要继续努力")
}
}运行结果:
及格了!📝 if-else if-else
go
package main
import "fmt"
func main() {
temperature := 28
if temperature > 30 {
fmt.Println("天气很热")
} else if temperature > 20 {
fmt.Println("天气舒适")
} else {
fmt.Println("天气有点凉")
}
}运行结果:
天气舒适📝 if 的简短声明
go
package main
import "fmt"
func main() {
// 在 if 中声明变量并判断
if price := 150; price > 100 {
fmt.Println("价格超过100元")
}
// 注意:price 只在 if 块内有效
}运行结果:
价格超过100元注意
在 if 语句中声明的变量,只能在 if-else 块内使用
💪 练习题
练习 1: 判断一个数字是正数、负数还是零
点击查看答案
go
package main
import "fmt"
func main() {
number := -5
if number > 0 {
fmt.Println("这是正数")
} else if number < 0 {
fmt.Println("这是负数")
} else {
fmt.Println("这是零")
}
}练习 2: 结合 for 和 if,打印 1 到 10 中能被 3 整除的数字
点击查看答案
go
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i%3 == 0 {
fmt.Println(i, "能被3整除")
}
}
}📌 小结
- for 循环是 Go 中唯一的循环方式,可以写成完整的三段式,也可以只保留条件部分当
while用 - if 语句用于条件判断,可以单独使用或配合
else、else if组合使用 - 使用
break可以跳出循环,控制流可以让程序更灵活地处理重复任务和条件分支
