纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Go break label与goto label差别 Go语言中break label与goto label的区别

itbsl   2021-04-28 我要评论
想了解Go语言中break label与goto label的区别的相关内容吗,itbsl在本文为您仔细讲解Go break label与goto label差别的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Go语言,break,label,goto,label,下面大家一起来学习吧。

与其他语言一样,Go语言也支持label(标签)语法:

分别是break label和 goto label

这样使得编程时变得异常灵活,但是由于在大项目中不好控制,所以建议能不使用goto label就不要使用

break label 和 goto label都能在循环中跳出循环,但是又有些不同之处。

首先说下break label,break的跳转标签(label)必须放在循环语句for前面,并且在break label跳出循环不再执行for循环里的代码。

当我们把标签定义在break的下面时,

我们会发现运行时报错

另外:break标签只能用于for循环

而goto label的label(标签)既可以定义在for循环前面,也可以定义在for循环后面,当跳转到标签地方时,继续执行标签下面的代码。

label标签定义在for循环上面的情况

label标签定义在for循环下面的情况

补充:Go语言-break语句的标签用法

在go语言中,break语句后可以加上标签。如果加了标签,就会跳出标签对应的for循环。

package main
import (
 "fmt"
)
func main() {
 label1:
 for i := 0; i < 4; i++ {
  for j := 0; j < 10; j++ {
   if j == 2{
    break label1
   }
   fmt.Println("j = ", j)
  }
 }
}

输出为:

j = 0

j = 1

上面例子中,break后的标签label1指定的就是最外层的for循环,所以当j等于2时,直接结束了所有的循环。

ps:continue语句也支持标签功能

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。


相关文章

猜您喜欢

  • mac clion c/c++环境配置 mac 配置Clion运行C和C++的环境的详细步骤

    想了解mac 配置Clion运行C和C++的环境的详细步骤的相关内容吗,JunDream在本文为您仔细讲解mac clion c/c++环境配置的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:mac,clion,c/c++环境配置,mac,clion配置,下面大家一起来学习吧。..
  • Java敏感词过滤器 Java实战之敏感词过滤器

    想了解Java实战之敏感词过滤器的相关内容吗,鱼子酱冲鸭在本文为您仔细讲解Java敏感词过滤器的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java敏感词过滤器,java过滤敏感词,java过滤器,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.iunios.com 【OS下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式