目录
一、条件语句
(1)if语句
基本语法:
if 条件表达式 { // 条件表达式为 true 时执行 }
ps:条件表达式左右的()可以不写,也建议不写
ps:if和表达式中间,一定要有空格
ps:在Go中,即使代码只有一行,也有加{}
流程图:
实例:
func main() {
var count int = 20
if count < 30 {
fmt.Println("容量不足!")
}
if count2 := 5; count2 < 30 {
fmt.Println("容量不足!")
}
}
(2)if...else语句
基本语法:
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ }
实例:
func main() {
score := 85
if score >= 90 {
fmt.Println("优秀")
} else if score >= 80 {
fmt.Println("良好")
} else if score >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
}
(3)if嵌套语句
基本语法:
if 布尔表达式 1 { /* 在布尔表达式 1 为 true 时执行 */ if 布尔表达式 2 { /* 在布尔表达式 2 为 true 时执行 */ } }
实例:
func main() {
num := 50
if num >= 0 {
if num < 10 {
fmt.Println("0 到 9 之间")
} else if num < 20 {
fmt.Println("10 到 19 之间")
} else if num < 30 {
fmt.Println("20 到 29 之间")
} else if num < 40 {
fmt.Println("30 到 39 之间")
} else if num < 50 {
fmt.Println("40 到 49 之间")
} else {
fmt.Println("50 及以上")
}
} else {
fmt.Println("负数")
}
}
(4)switch语句
基本语法:
switch var1 {
case val1:
// 执行分支 1
case val2:
// 执行分支 2
// 可以有更多的 case 语句
default:
// 执行默认分支
}
实例:
func main() {
// 基本的整数类型 switch
num := 2
switch num {
case 1:
fmt.Println("数字是 1")
case 2:
fmt.Println("数字是 2")
case 3:
fmt.Println("数字是 3")
default:
fmt.Println("其他数字")
}
// 字符串类型 switch
str := "apple"
switch str {
case "apple":
fmt.Println("水果是苹果")
case "banana":
fmt.Println("水果是香蕉")
case "orange":
fmt.Println("水果是橙子")
default:
fmt.Println("其他水果")
}
// 布尔类型 switch
isTrue := true
switch isTrue {
case true:
fmt.Println("是真")
case false:
fmt.Println("是假")
}
// 接口类型 switch
var i interface{}
i = 10
switch i.(type) {
case int:
fmt.Println("接口存储的是整数")
case string:
fmt.Println("接口存储的是字符串")
default:
fmt.Println("其他类型")
}
// 多个值的 case
day := 5
switch day {
case 1, 2, 3, 4, 5:
fmt.Println("工作日")
case 6, 7:
fmt.Println("休息日")
default:
fmt.Println("无效的日期")
}
// 无表达式的 switch
value := 50
switch {
case value < 20:
fmt.Println("值小于 20")
case value >= 20 && value < 40:
fmt.Println("值在 20 到 40 之间")
case value >= 40:
fmt.Println("值大于等于 40")
}
}
在 Go 语言中,switch
语句可以支持多种数据类型,包括但不限于以下几种:
-
整数类型,如
int
、uint
、int8
、uint8
、int16
、uint16
、int32
、uint32
、int64
、uint64
。 -
浮点数类型,如
float32
、float64
。 -
字符串类型
string
。 -
布尔类型
bool
。 -
接口类型。
-
自定义类型。
注意:
ps:case后面不需要带break
ps:default语句不是必须的,位置也是不固定的