控制结构用于控制程序的执行流。主要的控制结构包括 if
语句、for
循环、switch
语句和 goto
语句。本文将详细介绍这些控制结构的用法和特点。
1 if
语句
if
语句用于条件判断,根据条件的真假决定是否执行某段代码。
1.1 基本用法
1.2 if-else 语句
1 2 3 4 5
| if condition { } else { }
|
1.3 if-else if-else 语句
支持多个条件判断
1 2 3 4 5 6 7
| if condition1 { } else if condition2 { } else { }
|
1.4 简短声明
在 if 的条件部分可以使用简短声明。
1 2 3 4 5
| if num := 10; num%2 == 0 { fmt.Println("偶数") } else { fmt.Println("奇数") }
|
2 for
循环
for 是 Go 语言唯一的循环结构。它可以用来实现不同类型的循环,包括传统的计数循环和条件循环。
2.1 基本用法
1 2 3
| for i := 0; i < 5; i++ { fmt.Println(i) }
|
2.2 条件循环
没有初始化和更新语句的 for 循环可以用于条件判断。
1 2 3 4 5
| i := 0 for i < 5 { fmt.Println(i) i++ }
|
2.3 无限循环
2.4 range 循环
range 可以用于遍历数组、切片、映射和字符串。
1 2 3 4
| fruits := []string{“apple”, “banana”, “cherry”} for index, value := range fruits { fmt.Printf(”%d: %s\n”, index, value) }
|
3 switch
语句
switch 语句用于多条件选择,它是对 if 语句的补充,通常使代码更加简洁易读。
3.1 基本用法
1 2 3 4 5 6 7 8
| switch expression { case value1:
case value2:
default:
}
|
3.2 不带表达式的 switch
不带表达式的 switch 默认使用 true,每个 case 可以是一个布尔表达式。
1 2 3 4 5 6 7 8
| switch { case num < 0: fmt.Println(“负数”) case num == 0: fmt.Println(“零”) default: fmt.Println(“正数”) }
|
3.3 匹配多个值
1 2 3 4 5 6
| switch day { case “Monday”, “Tuesday”: fmt.Println(“工作日”) case “Saturday”, “Sunday”: fmt.Println(“周末”) }
|
4 goto
语句
goto 语句用于无条件地跳转到指定标签,虽然在某些情况下可以简化代码,但应谨慎使用。
4.1 基本用法
4.2 示例
1 2 3 4 5 6 7 8
| i := 0
loop: if i < 5 { fmt.Println(i) i++ goto loop }
|