Golang(Go语言)中的条件语句允许你根据条件表达式的真假来执行不同的代码块。Go语言提供了if
语句和switch
语句来实现条件控制。
if
语句if
语句是Go语言中用于条件控制的基本语句。它的基本形式如下:
if condition {
// 如果condition为真,则执行这里的代码
} else if anotherCondition {
// 如果上面的condition为假,但anotherCondition为真,则执行这里的代码
} else {
// 如果所有的condition都为假,则执行这里的代码(可选)
}
示例:
package main
import "fmt"
func main() {
score := 85
if score >= 90 {
fmt.Println("优秀")
} else if score >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
}
switch
语句switch
语句是另一种用于条件控制的结构,它允许一个变量或表达式的值与多个case
子句进行匹配。如果找到匹配项,则执行该case
子句中的代码。Go语言的switch
语句非常灵活,它不仅可以用于整数、浮点数等,还可以用于字符串和布尔值,甚至不需要显式地提供每个case
后面的条件表达式(即“隐式switch
”或“类型switch
”)。
基本形式:
switch expression {
case value1:
// 如果expression等于value1,则执行这里的代码
case value2:
// 如果expression等于value2,则执行这里的代码
...
default:
// 如果没有任何case匹配,则执行这里的代码(可选)
}
隐式(或类型)switch
形式:
switch variable.(type) {
case type1:
// 如果variable的类型是type1,则执行这里的代码
case type2:
// 如果variable的类型是type2,则执行这里的代码
...
default:
// 如果variable不是上述任何类型,则执行这里的代码(可选)
}
示例(基本形式):
package main
import "fmt"
func main() {
grade := "B"
switch grade {
case "A":
fmt.Println("优秀")
case "B", "C":
fmt.Println("良好")
case "D":
fmt.Println("及格")
default:
fmt.Println("不及格")
}
}
示例(隐式switch
):
package main
import (
"fmt"
)
func do(i interface{}) {
switch v := i.(type) {
case int:
fmt.Printf("Two integers: %d\n", v)
case string:
fmt.Printf("A string: %s\n", v)
default:
fmt.Printf("I don't know about type %T!\n", v)
}
}
func main() {
do(21)
do("hello")
do(true)
}
在上面的隐式switch
示例中,do
函数接收一个interface{}
类型的参数i
,并使用switch
语句来确定i
的实际类型,并执行相应的代码块。注意,对于true
(布尔值),它不会匹配任何case
,因此会执行default
分支。
上一篇: Golang 语言运算符
下一篇: Golang 语言循环语句