Go语言中的if else控制语句
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// ...
}