# 控制结构

URL: https://caijiao.org/go/01-go-basic/10-control-structures
Source: docs/go/01-go-basic/10-control-structures.md
Description: 本节介绍 Go 语言中的控制结构，包括条件判断、循环和跳转，帮助你掌握程序流程控制的基本方法。

Go 语言提供丰富的控制结构，用于实现条件判断和循环操作。

## 1. if 语句

基本形式：

```go
if condition {
    // 执行代码
}
````

带 else：

```go
if condition {
    // 条件为真执行
} else {
    // 条件为假执行
}
```

带 else if：

```go
if condition1 {
    // 条件1为真
} else if condition2 {
    // 条件2为真
} else {
    // 其他情况
}
```

## 2. switch 语句

用于多分支判断，支持表达式和类型判断。

```go
switch variable {
case value1:
    // 处理 value1
case value2:
    // 处理 value2
default:
    // 默认处理
}
```

示例：

```go
switch day := 3; day {
case 1:
    fmt.Println("Monday")
case 2:
    fmt.Println("Tuesday")
default:
    fmt.Println("Other day")
}
```

## 3. for 循环

Go 只有一种循环结构 `for`，支持多种形式。

* 经典三段式：

```go
for i := 0; i < 5; i++ {
    fmt.Println(i)
}
```

* 类似 while 循环：

```go
i := 0
for i < 5 {
    fmt.Println(i)
    i++
}
```

* 无限循环：

```go
for {
    // 无限循环体
}
```

## 4. goto 语句

跳转到程序中指定标签，谨慎使用。

```go
func main() {
    i := 0
Start:
    fmt.Println(i)
    i++
    if i < 5 {
        goto Start
    }
}
```

控制结构让你能够灵活控制程序流程，完成复杂的逻辑判断与重复操作。
