Go- goto 和 label
版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/96046f86c4b94b045965d6fac】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
Go 学习笔记,学习内容《Go入门指南》
主要介绍以下内容:
continue label
break label
goto label
代码示例可以直接运行
package main
import (
"fmt"
)
func main() {
LABEL1:
for i := 0; i < 3; i++ {
for j := 0; j <= 5; j++ {
if j == 4 {
continue LABEL1 // 程序不会继续往下执行,而是从第一个for循环继续执行
}
fmt.Printf("i = %d, j = %d\n", i, j) // j 取值为 4、5被跳过
}
}
/*
输出:
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 0, j = 3
i = 1, j = 0
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 0
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
*/
LABEL2:
for i := 0; i < 3; i++ {
for j := 0; j <= 5; j++ {
if j == 4 {
break LABEL2 // 程序不会继续往下执行,直接从第一个for循环退出
}
fmt.Printf("i = %d, j = %d\n", i, j)
}
}
/*
输出:
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 0, j = 3
*/
/*
使用goto语句,label应放在goto之后
*/
var a, b int
a = 1
goto Target
b = 2
Target:
b += a
fmt.Printf("a = %d, b = %d\n", a, b) // 输出:a = 1, b = 1
}
版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/96046f86c4b94b045965d6fac】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
还未添加个人签名 2018.09.20 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论