吾八哥博客

您现在的位置是:首页 > 码农手记 > Golang > 正文

Golang

吾八哥学Golang(六):Golang里的流程控制-跳转语句

吾八哥2018-01-13Golang15963

跳转语句即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标签处的循环了。

简单总结下:

  1. goto语句可以跳转到指定的代码标签段

  2. goto语句一般与条件语句配合使用,同时需要有代码标签来指定跳转到的代码位置

  3. goto语句跳转后确实会影响程序的代码结构,只有根据执行条件来看代码执行结构逻辑