Go 运算符
Go 循环语句 

Go 条件语句

在 Go 语言(Golang) 中,常见的条件语句有 if 语句、switch 语句,以及 select 语句(用于 channel)。这些条件语句可以控制代码的执行流程。

if 语句

基本语法

if 条件 {
    // 条件为 true 时执行的代码
}

示例 1:基本 if

package main
import "fmt"
func main() {
    age := 18
    if age >= 18 {
        fmt.Println("成年人")
    }
}


if...else 语句

if 条件 {

    // 条件为 true 时执行的代码

} else {

    // 条件为 false 时执行的代码

}

示例 2:if-else

package main
import "fmt"
func main() {
    age := 16
    if age >= 18 {
        fmt.Println("成年人")
    } else {
        fmt.Println("未成年人")
    }
}

if...else if...else

基本语法:

if 条件1 {
    // 条件1成立执行
} else if 条件2 {
    // 条件2成立执行
} else {
    // 以上条件都不成立执行
}

示例 3:多个条件判断

package main
import "fmt"
func main() {
    score := 85
    if score >= 90 {
        fmt.Println("A")
    } else if score >= 75 {
        fmt.Println("C")
    } else if score >= 60 {
        fmt.Println("C")
    } else {
        fmt.Println("D")
    }
}

在 if 语句中声明变量

Go 允许在 if 语句中声明变量,它的作用域仅限于 if-else 代码块:

if 变量 := 表达式; 条件 {
    // 代码块
}

示例 4:if 语句内声明变量

package main
import "fmt"
func main() {
    if num := 10; num%2 == 0 {
        fmt.Println("num 是偶数")
    } else {
        fmt.Println("num 是奇数")
    }
    // fmt.Println(num) // 错误:num 变量超出作用域
}

特别提醒:if 语句中声明的变量只在 if 代码块中有效。


switch 语句

Go 的 switch 语句比 C 语言更强大,不需要 break,可以直接匹配多个值。

基本语法

switch 变量 {
case 值1:
    // 代码块
case 值2:
    // 代码块
default:
    // 代码块(可选)
}

case 匹配多个值

package main
import "fmt"
func main() {
    grade := "B"
    switch grade {
    case "A", "B":
        fmt.Println("优秀或良好")
    case "C", "D":
        fmt.Println("及格")
    default:
        fmt.Println("不及格")
    }
}

省略switch关键字

Go 允许 switch 语句省略表达式,相当于 if-else if 结构:

package main
import "fmt"
func main() {
    num := 10
    switch {
    case num < 0:
        fmt.Println("负数")
    case num == 0:
        fmt.Println("零")
    default:
        fmt.Println("正数")
    }
}