Go 语言条件语句
在编程语言中,条件语句用于根据特定条件执行不同的代码路径。Go 语言提供了几种条件语句,包括 if
、switch
和 select
。这些语句使得程序可以根据不同的条件执行不同的操作,从而实现程序的逻辑分支。
1. if 语句
if
语句是 Go 语言中最基本的条件语句。它根据一个布尔表达式的值来决定是否执行一段代码。if
语句的基本格式如下:
if condition {
// 条件为真时执行的代码
}
如果条件为真,则执行大括号内的代码块。如果条件为假,则跳过该代码块。
示例
package main
import "fmt"
func main() {
age := 20
if age >= 18 {
fmt.Println("你已经成年了")
}
}
在这个例子中,如果 age
的值大于或等于 18,程序将打印出 "你已经成年了"。
2. if...else 语句
if...else
语句在 if
语句的基础上增加了另一种选择。如果 if
的条件为假,则执行 else
代码块。格式如下:
if condition {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
示例
package main
import "fmt"
func main() {
age := 16
if age >= 18 {
fmt.Println("你已经成年了")
} else {
fmt.Println("你还未成年")
}
}
在这个例子中,如果 age
的值小于 18,程序将打印出 "你还未成年"。
3. if...else if...else 语句
if...else if...else
语句用于在多个条件之间进行选择。格式如下:
if condition1 {
// 条件1为真时执行的代码
} else if condition2 {
// 条件2为真时执行的代码
} else {
// 所有条件都为假时执行的代码
}
示例
package main
import "fmt"
func main() {
score := 85
if score >= 90 {
fmt.Println("优秀")
} else if score >= 80 {
fmt.Println("良好")
} else {
fmt.Println("及格")
}
}
在这个例子中,根据 score
的值,程序将打印出 "优秀"、"良好" 或 "及格"。
4. switch 语句
switch
语句用于基于不同的情况执行不同的代码块。它提供了比多个 if...else if...else
语句更清晰、更简洁的方式来处理多个条件。格式如下:
switch variable {
case value1:
// 变量为 value1 时执行的代码
case value2:
// 变量为 value2 时执行的代码
// ...
default:
// 所有 case 都不匹配时执行的代码
}
示例
package main
import "fmt"
func main() {
day := 3
switch day {
case 1:
fmt.Println("星期一")
case 2:
fmt.Println("星期二")
case 3:
fmt.Println("星期三")
// ...
default:
fmt.Println("无效的星期")
}
}
在这个例子中,根据 day
的值,程序将打印出对应的星期。
5. select 语句
select
语句用于处理多个通道(channel)的操作。它随机选择一个准备好通信的通道进行操作。格式如下:
select {
case <-channel1:
// 从 channel1 接收数据时执行的代码
case channel2 <- 1:
// 向 channel2 发送数据时执行的代码
// ...
default:
// 所有通道都不满足条件时执行的代码
}
示例
package main
import (
"fmt"
"time"
)
func main() {
c1 := make(chan string)
c2 := make(chan string)
go func() {
time.Sleep(1 * time.Second)
c1 <- "Hello"
}()
go func() {
time.Sleep(2 * time.Second)
c2 <- "World"
}()
select {
case msg1 := <-c1:
fmt.Println(msg1)
case msg2 := <-c2:
fmt.Println(msg2)
case <-time.After(3 * time.Second):
fmt.Println("超时")
}
}
在这个例子中,select
语句等待 c1
或