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