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("正数")
}
}