脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Golang - Go中带标签的break/continue以及goto的差别

Go中带标签的break/continue以及goto的差别

2023-10-22 14:01ThinkStu Golang

本文主要为大家介绍下golang中break/continue以及goto的差别,有需要的朋友可以参考下

  1. 带标签的 continue

    直接跳到标签所标记的最外层循环的下一个迭代,忽略当前迭代剩余的代码。

  2. 带标签的 break

    直接跳出标签所标记的最外层循环,继续执行该循环之后的代码。

  3. goto 关键字

    goto 可以无条件地跳转到程序中指定的标签处。在这种情况下,可以使用任意标签,不仅限于循环。

代码范例:

continue

rowLoop: // 这是外层循环的标签
for i, row := range array { // 外层循环
    for j, value := range row { // 内层循环
        if value <= threshold {
            continue rowLoop
        }
        fmt.Printf("Found: row %d, col %d\n", i, j)
        return
    }
}

// 输出:
// Row 0 start
// Row 0, Col 0
// Row 1 start
// Row 1, Col 0
// Row 2 start
// Row 2, Col 0

break

rowLoop: // 这是外层循环的标签
for i := 0; i < 3; i++ { // 外层循环
    fmt.Printf("Row %d start\n", i)
    for j := 0; j < 3; j++ { // 内层循环
        if j == 1 {
            break rowLoop
        }
        fmt.Printf("Row %d, Col %d\n", i, j)
    }
    fmt.Printf("Row %d end\n", i)
}

// 输出:
// Row 0 start
// Row 0, Col 0

goto

for i := 0; i < 3; i++ { // 外层循环
	fmt.Printf("Row %d start\n", i)
	for j := 0; j < 3; j++ { // 内层循环
		if j == 1 {
			goto end
		}
		fmt.Printf("Row %d, Col %d\n", i, j)
	}
	fmt.Printf("Row %d end\n", i)
}

end: // 这是goto标签
	fmt.Println("Reached end label")
	
// 输出:
// Row 0 start
// Row 0, Col 0
// Reached end label

到此这篇关于Go中带标签的break/continue以及goto的差别的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_35760825/article/details/132350243

延伸 · 阅读

精彩推荐
  • Golanggo语言使用Chromedp实现二维码登陆教程示例源码

    go语言使用Chromedp实现二维码登陆教程示例源码

    这篇文章主要为大家介绍了go语言使用Chromedp实现二维码登陆示例源码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    EvaCcino11522022-09-29
  • Golang一篇带给你Go语言的并发

    一篇带给你Go语言的并发

    并行指的是在同一时间,多个程序在不同的 CPU 上共同运行,互相之间并没有对 CPU 资源进行竞争。比如,我在看书的时候,左手用来翻书,右手做笔记,两...

    自然醒的笔记本3812021-06-24
  • GolangGolang实现简易的命令行功能

    Golang实现简易的命令行功能

    这篇文章主要为大家详细介绍了如何通过Golang实现一个简易的命令行功能,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下...

    陪我去看海10932023-02-14
  • Golang利用systemd部署golang项目的实现方法

    利用systemd部署golang项目的实现方法

    这篇文章主要介绍了利用systemd部署golang项目的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    qinhan8802020-05-31
  • GolangGo 如何实现启动参数的加载

    Go 如何实现启动参数的加载

    今天我们将问题缩小,来学习 Go 程序是怎么加载启动参数,以及如何进行参数解析。...

    Golang技术分享4032022-01-04
  • Golanggolang gin框架获取参数的操作

    golang gin框架获取参数的操作

    这篇文章主要介绍了golang gin框架获取参数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    疯狂的鸭血18002021-03-14
  • GolangGo语言文件读写操作案例详解

    Go语言文件读写操作案例详解

    这篇文章主要为大家介绍了Go语言文件读写操作案例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    山与路4252022-11-22
  • Golanggo语言实现mqtt协议的实践

    go语言实现mqtt协议的实践

    MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。本文主要介绍了go语言实现mqtt协议的实践,文中通过示例代码介绍的非常详细,具有一定的参考价...

    文杰@4332021-11-15