5.条件语句
if else 语句
在 go 中,if else 写法和 C/C++ 类似,不同点在于 go 语言中,if 后面没有括号。第二个不同点在于if 后面必须接一个大括号,你无法像 C/C++ 那样,直接把 if 里面的语句和 if 写在同一行。
if a > 1 {
fmt.Println("a 大于 1")
}
只有当a > 1为 true 时执行该语句
if a > 1 {
fmt.Println("a 大于 1") //1
} else {
fmt.Println("a 不大于 1") } //2
当a > 1为 true 时执行该语句1,false时执行语句2
if a := 9; a < 2 {
fmt.Println(a, "比2小哦")
} else if a < 8 {
fmt.Println(a, "大于2但不小于8哦")
} else {
fmt.Println(a, "是这里了")
}
这个条件语句是一个复合条件语句, a := 9将a初始化为9。这个初始化语句在条件判断前被执行,并且 num 的作用域仅限于这个if-else-if语句块。
switch
switch是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较,并根据匹配执行代码块。switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。 switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break。switch后的变量不需加括号。
num := 2 //局部变量
switch num {
case 1:
fmt.Println("One")
case 2:
fmt.Println("Two")
default:
fmt.Println("Other")
}
switch {
case num == "1":
fmt.Printf("优秀!\n")
case num == "2", num == "3":
fmt.Printf("良好\n")
case num == "4":
fmt.Printf("及格\n")
case num == "5":
fmt.Printf("不及格\n")
default:
fmt.Printf("差\n")
}
如果需要执行多个case语句(即多个条件满足时要执行相同的代码),可以使用逗号将多个条件合并在一起。如:case num == "2", num == "3"
6.循环语句(for)
在Go语言中,只有for循环一种循环。在for循环中可以在循环体内使用 break 跳出循环或者使用 continue 来继续下一次循环。
break
func main() {
for i := 1; i <= 10; i++ {
if i > 5 {
break
}
fmt.Printf("%d\n ", i)
}
fmt.Printf("over")
}
跳出循环体。break语句用于在结束其正常执行之前突然终止for循环
- continue
func main() {
for i := 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Printf("%d ", i)
}
}
跳出一次循环。continue语句用于跳过for循环的当前迭代。在continue语句后面的for循环中的所有代码将不会在当前迭代中执行。循环将继续到下一个迭代。
7.数组 Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。 数组元素可以通过索引来读取,索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推。数组的下标取值范围是从0开始,到长度减1。 数组一旦定义后,大小不能更改。
- 声明、初始化数组
需要指明数组的大小和存储的数据类型。
var slit[10] float32
var slit = [4]float32{10.0, 2.0, 3.1, 50.0}
{}是初始化数组中的元素,[]为初始化规定的数组中最多可有多少元素。初始化数组中 {} 中的元素个数不能大于 [] 中的数字。 如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小:
var slit = []float32{10.0, 2.0, 3.1, 50.0}
- len函数,可以获得数组的长度。
- range遍历数组
- 可以是多维数组
- 数组是值类型