吾八哥学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语句跳转后确实会影响程序的代码结构,只有根据执行条件来看代码执行结构逻辑