【Golang】:流程控制语句
目录
1. 分支控制
1.1 if 语句
1.2 switch 语句
2. 循环控制
3. 跳转控制
3.1 break 语句
3.2 continue 语句
3.3 goto
3.4 return语句
3.5 带标签的 break / continue
1. 分支控制
1.1 if 语句
if 条件 { // 条件成立时执行
} else if 其他条件 { // 另一个条件成立时执行
} else { // 都不成立时执行
}// 支持变量初始化:
if score := 80; score >= 60 { fmt.Println("及格")
}
1.2 switch 语句
switch 表达式 {
case 值1: // ...
case 值2, 值3: // 多个匹配值 // ...
default: // 都不匹配时执行
}
特点:
-
Go 的 switch 不需要写 break,匹配成功会自动跳出。
-
想继续执行下一个 case,可以用
fallthrough
:
// 一// 二switch num := 1; num {case 1:fmt.Println("一")fallthroughcase 2:fmt.Println("二")}
2. 循环控制
Go 只有 for
一种循环语句。
// 1. 标准 for 循环
for i := 0; i < 5; i++ {fmt.Println(i)
}// 2. while 风格
i := 0
for i < 5 { fmt.Println(i) i++
}// 3. 无限循环
for { fmt.Println("一直执行")
}
for range
用于遍历数组、切片、map、字符串:
// 在for range循环中遍历字符串时,每次迭代会返回两个值
// 第一个是字符的索引
// 第二个是字符的值,当遍历结束后会自动退出for循环。
nums := []int{1, 2, 3}
for i, v := range nums { fmt.Println(i, v)
}
3. 跳转控制
3.1 break 语句
退出当前循环或 switch
。
for i := 0; i < 5; i++ { if i == 3 { break } fmt.Println(i)
}
3.2 continue 语句
跳过本次循环,进入下一次循环。
for i := 0; i < 5; i++ { if i%2 == 0 { continue } fmt.Println(i)
}
3.3 goto
直接跳到某个标签执行(不建议频繁使用)。
fmt.Println("开始") goto End fmt.Println("这里不会执行")
End: fmt.Println("结束")
3.4 return语句
Go中的return语句在方法或函数中使用,表示跳出所在的方法或函数。如下:
// 在普通函数中使用return语句,表示跳出当前函数,可以理解成终止函数。
// 在main函数中使用return语句,表示终止main函数,即终止整个程序。
func main() {// return语句for i := 0; i < 10; i++ {if i == 6 {return}fmt.Printf("%d ", i)}
}
3.5 带标签的 break / continue
当有多层循环时,可以退出到指定标签。
// 0 0Outer:for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if j == 1 {break Outer // 直接跳出 Outer 循环}fmt.Println(i, j)}}/*0 01 02 0*/Outer:for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if j == 1 {continue Outer // 直接跳出 Outer 循环}fmt.Println(i, j)}}