吾八哥学Golang(六):Golang里的流程控制-跳转语句
跳转语句即goto语句,goto语句可以无条件地转移到过程中指定的标签代码段。在大多数情况下都是不推荐使用goto语句的,因为goto语句会造成某种程度的程序结构的混乱,所以我们在其他开发语言里都很少看到使用goto语句,但既然存在goto语句,肯定会有一些应用场景使用goto语句是最合适的!这些我觉得在编程的过程中根据实际情况而来就行。来看个简单的使用goto的例子吧!
package main import ( "fmt" ) func main() { fmt.Println("执行开始") i := 0 add: i++ fmt.Println(i) if i < 5 { goto add goto flag } flag: fmt.Println("执行到flag处") fmt.Println("执行完成") }
以上代码定义了两个标签add和flag,可以根据条件来通过goto关键字执行指定的代码标签段,上面代码执行结果为:
执行开始 1 2 3 4 5 执行到flag处 执行完成
下面来看看循环语句里使用goto关键字,实例如下:
package main import ( "fmt" ) func main() { x := 10 test: fmt.Println("开始执行循环:x=", x) for x < 20 { if x == 15 { x++ goto test } fmt.Println(x) x++ } }
上面的代码作用是当x为15的时候跳转到test标签处再次执行循环,以上代码执行结果为:
开始执行循环:x= 10 10 11 12 13 14 开始执行循环:x= 16 16 17 18 19
从执行结果可以看出goto关键字触发后再次开始执行test标签处的循环了。
简单总结下:
goto语句可以跳转到指定的代码标签段
goto语句一般与条件语句配合使用,同时需要有代码标签来指定跳转到的代码位置
goto语句跳转后确实会影响程序的代码结构,只有根据执行条件来看代码执行结构逻辑