一、if 语句
if语句用于处理当满足不同的条件时执行不同的逻辑的需求
当程序if语句格式为 if 表达式 {} else if 表达式 {} else {} ,表达式值是bool类型的
package main
func main() {
i := 8
if i == 8 {
println("i的值等于8")
} else if i==7 {
println("i的值等于7")
} else if i==6 {
println("i的值等于6")
} else {
println("i的值不等于6不等于7也不等于8")
}
}
if的bool表达式前还可以有其他表达式需要用分号(;)分隔
package main
func main() {
if j, i := 7, 8; i == 9 {
println("i的值等于8")
} else if j == 7 {
println("j的值等于7")
} else if i == 6 {
println("i的值等于6")
} else {
println("i的值不等于6不等于8j也不等于7")
}
}
二、switch语句
1、switch语句和if类似也是用于根据不同条件执行不同业务逻辑:
package main
func main() {
i := 7
switch i {
case 8:
println("i的值等于8")
case 7:
println("i的值等于7")
default:
println("i的值不等于7也不等于8")
}
}
2、case 可以是常量值、表达式。switch中也可以包含表达式,需要分号(;)分割:
package main
func main() {
switch i, j, k := 7, 3, 4; i + 1 {
case 8:
println("i + 1的值等于8")
case j + k:
println("j + k的值等于7")
default:
println("任何条件都不满足")
}
}
3、fallthrough 放在case 逻辑块的末端可使程序放弃判断下一个 case 表达式是否满足条件:
package main
func main() {
switch i, j, k := 7, 3, 4; i + 1 {
case 8:
println("i + 1的值等于8")
fallthrough //继续执行 case j+ k 不管是否满足条件
case j + k:
println("j + k的值等于7")
case 100:
println("100")
default:
println("任何条件都不满足")
}
}
4、break可以跳出switch逻辑块的执行:
package main
func main() {
switch i, j, k := 7, 3, 4; i + 1 {
case 8:
println("i + 1的值等于8")
fallthrough //继续执行 case j+ k 不管是否满足条件
case j + k:
if j+k == 7 {
break // 跳出switch
}
println("j + k的值等于7")
case 100:
println("100")
default:
println("i的值不等于7也不等于8")
}
}
三、for循环语句
for语句格式1:
for 初始化表达式,条件表达式,迭代表达式 {
}
初始化表达式,只执行一次
条件表达式,满足条件继续执行循环体即{}内的内容,不满足则结束for语句
迭代表达式与条件表达式轮番执行直至条件表达式不满足即表达式结果为false
package main
func main() {
nums := []int{1, 2, 3, 4}
// i:=0 初始化表达式,只执行一次
// i < len(nums) 条件表达式,满足条件继续执行循环体println(nums[i]),不满足则结束for语句
// i++ 迭代表达式与条件表达式轮番执行直至条件表达式不满足即表达式结果为false
for i := 0; i < len(nums); i++ {
println(nums[i])
}
}
for语句格式2:
for 条件表达式 {
}
条件表达式,满足条件继续执行循环体即{}内的内容,不满足则结束for语句
package main
func main() {
i, nums := 0, []int{1, 2, 3, 4}
for i < len(nums) {
println(nums[i])
i++
}
}
for语句格式3:
for {
}
类似其他语句的 while true
package main
func main() {
i, nums := 0, []int{1, 2, 3, 4}
for {
println(nums[i])
if i >= 3 {
break //跳出for循环
}
i++
}
}
for 语句4:
for …range 用于遍历 string array slice map channel
package main
func main() {
nums := []int{1, 2, 3, 4}
for i, v := range nums {
println(i, v)
}
}
for 循环与 continue、break
continue用于跳过本次执行
break用于跳出for循环
package main
func main() {
nums := []int{1, 2, 3, 4, 5, 6, 7}
for i := 0; i < len(nums); i++ {
if i == 1 {
continue
}
if i == 3 {
break
}
println(nums[i])
}
}