Go语言中的if else控制语句

发布于:2025-06-10 ⋅ 阅读:(24) ⋅ 点赞:(0)

if else是Go语言中最基础也最常用的条件控制语句,用于根据条件执行不同的代码块。下面我将详细介绍Go语言中if else的各种用法和特性。

1. 基本语法

1.1. 最简单的if语句

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

示例:

if x > 10 {
    fmt.Println("x大于10")
}

1.2. if-else语句

if 条件表达式 {
    // 条件为true时执行的代码
} else {
    // 条件为false时执行的代码
}

示例:

if x > 10 {
    fmt.Println("x大于10")
} else {
    fmt.Println("x不大于10")
}

1.3. if-else多分支语句

if 条件表达式1 {
    // 条件1为true时执行的代码
} else if 条件表达式2 {
    // 条件2为true时执行的代码
} else {
    // 所有条件都为false时执行的代码
}

示例:

if score >= 90 {
    fmt.Println("优秀")
} else if score >= 80 {
    fmt.Println("良好")
} else if score >= 60 {
    fmt.Println("及格")
} else {
    fmt.Println("不及格")
}

2. 特殊用法

2.1. 在if条件前执行简单语句

Go语言的if语句支持在条件表达式前执行一个简单的语句,通常是短变量声明,该语句声明的变量作用域仅限于if语句块内。

if 简单语句; 条件表达式 {
    // 代码块
}

示例:

if x := getValue(); x > 10 {
    fmt.Println("x大于10")
} else {
    fmt.Println("x值为", x)
}
// 这里不能访问x

2.2. 嵌套if语句

if语句可以嵌套使用:

if 条件1 {
    if 条件2 {
        // 代码块
    }
}

示例:

if x > 10 {
    if y > 20 {
        fmt.Println("x>10且y>20")
    }
}

3. 注意事项

1. 条件表达式不需要括号:Go语言的if条件表达式不需要用括号括起来,但代码块的花括号是必须的;

2. 花括号位置:Go语言要求if和else后面的花括号必须与条件表达式在同一行。例如:

if x > 10 {
    // 正确
}

if x > 10 
{ // 错误,会编译失败
}

3. else必须与if的右花括号同行:

if x > 10 {
    // 代码
} else { // else必须这样写
    // 代码
}

4. 零值判断:在Go中,可以直接使用变量作为条件,它会自动判断是否为该类型的零值:

var s string
if s { // 相当于 if s != ""
    // ...
}

var n int
if n { // 相当于 if n != 0
    // ...
}