cms 做网站模板电子商务网站和开发新闻类网站
Go语言中的流程控制语句包括条件判断、循环和分支控制。以下是详细介绍:
1. 条件判断语句
if 语句
Go语言的 if 语句与其他语言类似,支持基本的条件判断。
if 条件 {// 执行代码
}
 
-  
if-else语句:if 条件 {// 执行代码 } else {// 执行代码 } -  
if-else if-else语句:if 条件1 {// 执行代码 } else if 条件2 {// 执行代码 } else {// 执行代码 } -  
在
if语句中可以带有一个初始化语句,用于在判断条件前执行一次。if 初始化语句; 条件 {// 执行代码 } 
switch 语句
switch 语句用于简化多个条件的判断,通常比多个 if-else 更简洁。
switch 表达式 {
case 值1:// 执行代码
case 值2:// 执行代码
default:// 执行代码
}
 
-  
switch语句可以没有表达式,相当于switch true,适合多个条件分支。switch { case 条件1:// 执行代码 case 条件2:// 执行代码 default:// 执行代码 } 
2. 循环语句
Go语言只有 for 一个循环关键字,但可以用于多种场景。
for 循环
基本的 for 循环形式:
for 初始化语句; 条件; 后续操作 {// 执行代码
}
 
例如:
for i := 0; i < 10; i++ {fmt.Println(i)
}
 
while 类似的循环
省略初始化和后续操作,可以实现类似 while 的效果。
i := 0
for i < 10 {fmt.Println(i)i++
}
 
无限循环
省略条件,实现无限循环。
for {// 执行代码
}
 
for range 循环
用于遍历数组、切片、映射、字符串和通道。
for 索引, 值 := range 集合 {// 执行代码
}
 
例如,遍历数组:
arr := []int{1, 2, 3, 4}
for i, v := range arr {fmt.Println(i, v)
}
 
3. 跳转控制语句
break
用于提前结束循环。
for i := 0; i < 10; i++ {if i == 5 {break}fmt.Println(i)
}
 
continue
用于跳过本次循环,继续下一次循环。
for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println(i)
}
 
goto
goto 可以直接跳转到代码中的指定标签。标签以英文冒号 : 结尾。
i := 0
LOOP:fmt.Println(i)i++if i < 5 {goto LOOP}
 
4. 特殊控制语句
defer
defer 用于延迟执行函数,通常用于资源清理。被 defer 的语句会在函数返回之前执行,并且按后进先出的顺序执行。
func main() {defer fmt.Println("世界")fmt.Println("你好")
}
 
上面的代码会先输出“你好”,再输出“世界”。
panic 和 recover
panic用于引发异常,终止程序的正常执行。recover用于捕获panic,避免程序崩溃。
func main() {defer func() {if r := recover(); r != nil {fmt.Println("捕获到异常:", r)}}()panic("出现了严重错误")
}
 
