Golang教程第13篇(语言循环语句-goto 语句)

Go 语言 goto 语句

Go 语言循环语句Go 语言循环语句
Go 语言的 goto 语句可以无条件地转移到过程中指定的行。
goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

语法
goto 语法格式如下:

goto label;
..
.
label: statement;

goto 语句流程图如下:

在这里插入图片描述

实例
在变量 a 等于 15 的时候跳过本次循环并回到循环的开始语句 LOOP 处:

实例

package main
import "fmt"
func main() {
   /* 定义局部变量 */
   var a int = 10

   /* 循环 */
   LOOP: for a < 20 {
      if a == 15 {
         /* 跳过迭代 */
         a = a + 1
         goto LOOP
      }
      fmt.Printf("a的值为 : %d\n", a)
      a++    
   }  
}

以上实例执行结果为:

a的值为 : 10
a的值为 : 11
a的值为 : 12
a的值为 : 13
a的值为 : 14
a的值为 : 16
a的值为 : 17
a的值为 : 18
a的值为 : 19
### 空语句 在 Go 语言中,空语句通常就是一个单独的分号 `;`,不过在 Go 里很少会像在 C、C++ 中那样单独使用分号作为空语句。在 Go 中,如果需要一个不执行任何操作的占位语句,可能会在某些语法结构中体现。例如在 `for` 循环里,若不需要循环控制语句的某一部分,可留空,这可看作一种类似空语句的应用: ```go // 无限循环的 for 结构,省略循环控制语句 for { // 循环体 } ``` ### 无限循环语句 Go 语言实现无限循环有多种方式: - 使用 `for` 循环省略条件判断部分: ```go for { // 循环体代码 } ``` - 使用 `for true`(不过这种写法和省略条件判断本质一样,且一般不这么写): ```go for true { // 循环体代码 } ``` ### 标签 在 Go 语言里,标签是一种给代码位置命名的方式,一般和 `goto`、`break`、`continue` 语句配合使用。标签由一个标识符和冒号组成,且标签是大小写敏感的,通常建议全部使用大写字母。示例如下: ```go package main import "fmt" func main() { i := 0 Loop: for i < 5 { if i == 3 { i++ continue Loop } fmt.Println(i) i++ } } ``` 此代码中,`Loop` 就是一个标签,当 `i` 等于 3 时,使用 `continue Loop` 跳转到标签 `Loop` 处继续循环。 ### goto 语句 `goto` 语句用于函数内部的跳转。使用时需注意,若必须使用 `goto`,只应使用正序的(标签位于 `goto` 之后),且中间不能出现定义新变量的语句,否则会导致编译失败。例如: ```go package main import "fmt" func main() { var a int = 2 LOOP: for a < 5 { if a == 3 { a = a + 1 goto LOOP } fmt.Printf("a= : %d\n", a) a++ } } ``` 此代码里,当 `a` 等于 3 时,使用 `goto LOOP` 跳回到 `LOOP` 标签处继续循环。不过,大多数情况下不推荐使用 `goto` 和标签,因为这可能使代码难以理解和维护,更好的选择通常是使用循环和条件语句来控制程序流程[^1][^3][^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值