一、break
break 语句用于终止某个语句块的执行,用于中断当前 for 或者 switch 语句的执行流程,跳出当前循环或条件分支。
1、基本语法
2、流程图
3、使用细节
- 如果 break 语句在多层嵌套的循环中,默认只会跳出它所在的那一层循环。如果需要跳出多层循环,可以使用标签(label)来指定要跳出的循环层数。
- break 语句只能用于循环(for、while、do-while)和 switch 语句中,不能在函数、if 语句等其他代码块中使用。
- 在 switch 语句中,break 语句用于终止当前 case 的执行,防止继续执行后续的 case。
package main
import "fmt"
func main() {
// 单层循环中使用 break
for i := 0; i < 5; i++ {
if i == 3 {
break // 当 i 等于 3 时,跳出循环
}
fmt.Println(i)
}
// 多层循环中使用 break, 默认跳出最近的循环
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
break // 跳出当前的内层循环
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
// 多层循环中使用 break 和标签
outerLoop:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
break outerLoop // 跳出外层循环
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
// switch 语句中使用 break
day := "Monday"
switch day {
case "Monday":
fmt.Println("It's Monday")
break // 结束当前 case 的执行
case "Tuesday":
fmt.Println("It's Tuesday")
break
default:
fmt.Println("It's another day")
}
}
二、continue
continue 语句用于跳过当前循环中的剩余代码,直接进入下一次循环的判断条件,继续执行下一轮循环。
1、基本语法
2、流程图
3、使用细节
- continue 语句只能用于循环(for、while、do-while)中,不能在函数、if 语句等其他代码块中使用。
- 在多层嵌套的循环中,continue 语句默认只会跳过它所在的那一层循环的剩余代码。如果需要跳过多层循环,可以使用标签(label)来指定要跳过的循环层数。
package main
import "fmt"
func main() {
// 单层循环中使用 continue
for i := 0; i < 5; i++ {
if i%2 == 0 {
continue // 当 i 是偶数时,跳过当前循环的剩余代码,直接进入下一次循环
}
fmt.Println(i) // 只会打印奇数
}
// 多层循环中使用 continue, 默认跳过最近的循环
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
continue // 跳过当前的内层循环的剩余代码,继续下一轮内层循环
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
// 多层循环中使用 continue 和标签
outerLoop:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
continue outerLoop // 跳过外层循环的剩余代码,继续下一轮外层循环
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
}
三、goto 语句
goto 语句用于无条件地跳转到程序中的另一个位置,通常用于跳出多层嵌套的循环或者在函数中实现错误处理等场景。
在go中一般不建议使用这个 goto 语句,因为它会使代码的流程变得混乱,难以理解和维护。过度使用 goto 可能导致“意大利面条代码”(spaghetti code),使得程序的逻辑难以追踪和调试。
1、基本语法
2、流程图
- 输出的结果为 ok1 ok5 ok6 ok7
四、return 语句
- return 语句用于结束函数的执行,并返回一个值(如果需要)。
- return 语句可以在函数的任何位置使用,一旦执行到 return 语句,函数将立即停止执行,并将控制权返回给调用者。如果 return 后
- 如果 return 语句在main函数中,表示终止main函数(即,终止程序)
package test
func getA() {
return 'A'
}