goto,break continue主要用于流程控制中的一些跳出(内外层)或继续循环。
一,goto
跳转goto一般配合标签使用,用于跳转至标签后代码。
1,声明标签语法
标签名:
语句块
2,用法举例
(1)跳出多重循环
package main import "fmt" func main() { for x := 0; x < 10; x++ { for y := 0; y < 10; y++ { fmt.Println(x,y) if y == 2 { // 跳转到标签 goto breakHere } } } // 手动返回, 避免执行进入标签 return // 标签 breakHere: fmt.Println("done") }
输出结果:
0 0
0 1
0 2
done
(2)代码复用。
说明:goto虽然好用,但不建议过于使用,大量使用影响代码的可读性。
二,break
break 可以结束for、switch和select代码块。 break还可以后边添加标签,表示退出某个标签对应的代码块。
说明:标签要求比如定义在对应的for、switch和select,否则超出作用范围会编译报错。
package main import "fmt" func main(){ for i := 1;i < 5;i++{ if i == 3 { break } fmt.Println("i=",i) } }
输出结果:
i= 1
i= 2
三,continue
continue 仅限于for 循环使用。
作用: 跳过本次循环。
案例代码:
package main import "fmt" func main(){ for i:=1;i < 5;i++{ if i == 3 { continue } fmt.Println("i=",i) } }
输出结果:
i= 1
i= 2
i= 4
转载请注明:21运维 » Go语言流程控制-break、continue和goto