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 = 2Target: 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 加入
还未添加个人简介

促进软件开发及相关领域知识与创新的传播
京公网安备 11010502039052号


评论