在前面的文章中,我们已经介绍了 Go 语言的基本变量声明、类型推断、常量定义和标准库的使用。接下来,我们将通过三个具体的示例来详细讲解 Go 语言中的循环、条件判断和 switch 语句。
循环
无限循环和 break 语句
package main
import "fmt"
func main() {
i := 1
for {
fmt.Println("loop")
break
}
}
for { ... }:这是一个无限循环,如果没有break语句,它将一直执行下去。break:break语句用于立即退出当前的循环体。
带条件的 for 循环
for j := 7; j < 9; j++ {
fmt.Println(j)
}
for j := 7; j < 9; j++:这是一个典型的for循环,初始值j设为7,条件是j < 9,每次循环后j自增1。
带 continue 语句的 for 循环
for n := 0; n < 5; n++ {
if n%2 == 0 {
continue
}
fmt.Println(n)
}
if n%2 == 0:检查n是否为偶数。continue:如果n是偶数,则跳过本次循环的剩余部分,直接进入下一次循环。
带条件更新的 for 循环
for i <= 3 {
fmt.Println(i)
i = i + 1
}
for i <= 3:这是一个简化的for循环,只有条件部分。每次循环后需要手动更新i的值。
条件判断
基本的 if 语句
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
if 7%2 == 0:检查7是否为偶数。else:如果条件不成立,则执行else分支。
多重条件判断
if 8%4 == 0 {
fmt.Println("8 is divisible by 4")
}
if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
if num := 9; num < 0:在if语句中声明并初始化变量num。else if:多个条件分支,依次检查每个条件。else:所有条件都不满足时执行的分支。
switch 语句
基本的 switch 语句
a := 2
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4, 5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
switch a:根据变量a的值进行匹配。case 1::如果a的值为1,则执行相应的代码块。case 4, 5::可以同时匹配多个值。default::如果没有匹配的case,则执行default分支。
带条件的 switch 语句
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
switch { ... }:不带表达式的switch语句,直接根据条件进行匹配。case t.Hour() < 12:检查当前时间是否在中午之前。