golang中的 break label, goto label,continue label,break如何跳出多层循环

news/2025/1/11 1:35:42/
goto label

goto 可以无条件的跳转执行的位置,但是不能跨函数

label 不是代码块,可以理解为它是一个 position,直接跳到这个 position 然后接着向下运行。

func worker4() {fmt.Println(1)goto labelfmt.Println(2)
label:fmt.Println(3)
}

输出

1
3
func worker5() {
label:fmt.Println(1)time.Sleep(time.Second)goto labelfmt.Println(2)fmt.Println(3)}

将会无限输出 1

break label

break 只能跳出当前循环,而 break label 可以跳出多层循环,它要配合 for 循环使用,而不能用在 switch 。

label 下面要紧跟 for 语句,中间不能有其他代码。所以,break label 就是跳出 label 下面的那个 for 循环。

func worker6() {for x := 1; x < 10; x++ {label:// fmt.Println("inter") // 此处不能有代码for i := 1; i < 10; i++ {for j := 1; j < 10; j++ {sum := i + jfmt.Println(sum)if sum == 3 {break label}}}fmt.Println("out1")}fmt.Println("out2")
}
continue label

continue label 这个功能和 break 有点类似,区别在于 break 是强制终止, continue 是跳出来继续循环。

func worker7() {
label:for i := 1; i < 3; i++ {for j := 1; j < 3; j++ {sum := i + jfmt.Println(sum)if sum >= 3 {continue label}fmt.Println("after")}}fmt.Println("out1")
}
2
after
3
3
out1

http://www.ppmy.cn/news/1562114.html

相关文章

H2数据库在单元测试中的应用

H2数据库特征 用比较简洁的话来介绍h2数据库&#xff0c;就是一款轻量级的内存数据库&#xff0c;支持标准的SQL语法和JDBC API&#xff0c;工业领域中&#xff0c;一般会使用h2来进行单元测试。 这里贴一下h2数据库的主要特征 Very fast database engineOpen sourceWritten…

ASP.NET Core 实现微服务 - Consul 配置中心

这一次我们继续介绍微服务相关组件配置中心的使用方法。本来打算介绍下携程开源的重型配置中心框架 apollo 但是体系实在是太过于庞大&#xff0c;还是让我爱不起来。因为前面我们已经介绍了使用Consul 做为服务注册发现的组件 &#xff0c;那么干脆继续使用 Consul 来作为配置…

计算机网络(第七版)知识点

一、网络基础与设备 1. 主机与地址 主机&#xff08;Host&#xff09;&#xff1a;每个主机都有唯一的 IP地址&#xff08;Internet Protocol Address&#xff0c;互联网协议地址&#xff09; 和 MAC地址&#xff08;Media Access Control Address&#xff0c;介质访问控制地…

使用 C++ 实现神经网络:从基础到高级优化

引言 在现代机器学习中&#xff0c;神经网络已经成为最重要的工具之一。虽然 Python 提供了诸如 TensorFlow、PyTorch 等强大的机器学习库&#xff0c;但如果你想深入理解神经网络的实现原理&#xff0c;或者出于某些性能、资源限制的考虑&#xff0c;使用 C 来实现神经网络会是…

【多态】理解 Java 继承中成员变量与成员方法的访问特点

在 Java 的面向对象编程中&#xff0c;继承是一种核心机制&#xff0c;通过它可以实现代码复用和扩展。然而&#xff0c;在继承中&#xff0c;成员变量和成员方法的访问规则却有所不同。本文将详细分析这些规则&#xff0c;并探讨为什么 Java 选择了这样的设计。 一、成员变量的…

C语言——文件IO 【文件IO和标准IO区别,操作文件IO】open,write,read,dup2,access,stat

1.思维导图 2.练习 1&#xff1a;使用C语言编写一个简易的界面&#xff0c;界面如下 1&#xff1a;标准输出流 2&#xff1a;标准错误流 3&#xff1a;文件流 要求&#xff1a;按1的时候&#xff0c;通过printf输出数据&#xff0c;按2的时候&#xff0c;通过p…

CAN总线入门指南:从原理到实践

1 CAN通信基础概述 CAN&#xff08;Controller Area Network&#xff09;是一种串行通信协议&#xff0c;由德国BOSCH公司于1986年专门为汽车分布式控制系统开发。它最初的目标是减少汽车中的线束数量&#xff0c;降低整车重量和成本。经过30多年的发展&#xff0c;CAN已经成为…

【Maui】导航栏样式调整

前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。 使用 .NET MAUI&#xff0c;可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款开放源代码应用&#xff0c;是 X…