Z
ZHANK
编程在线教程Go 教程条件判断 if-else
控制流程

条件判断 if-else

if/else if/else、短声明 if、Go 没有三目运算符

条件判断 if-else

Go 的 if 有两大特色:可以在条件前加短声明(类似 for 的初始化),Go 没有三目运算符

学完本章你将: 掌握 if/else、短声明 if、真值判断。


if / else if / else

go
package main

import "fmt"

func main() {
    score := 85

    if score >= 90 {
        fmt.Println("优秀")
    } else if score >= 80 {
        fmt.Println("良好")    // 输出这句
    } else {
        fmt.Println("加油")
    }
}

短声明 if —— Go 特色

go
// 在 if 中声明变量(作用域仅限于 if/else 块)
if err := doSomething(); err != nil {
    fmt.Println("出错:", err)
    return
}
// err 在这里不可见

// 等价于(但作用域更干净)
err := doSomething()
if err != nil {
    fmt.Println("出错:", err)
    return
}

Go 没有三目运算符

go
// ❌ Go 没有 a ? b : c
// max := a > b ? a : b

// ✅ 用 if-else
max := a
if b > a {
    max = b
}

💡 Go 的设计者认为三目运算符容易被滥用(嵌套后难以阅读),所以干脆不加。


真值判断

go
// 只有 true 和 false——没有 truthy/falsy
if true { }    // ✅
// if 1 { }    // ❌ 编译错误——1 不是 bool
// if "hello"  // ❌ 编译错误