当前位置: 首页 > news >正文

GO语言语法---For循环、break、continue

文章目录

  • 1. 基本for循环(类似其他语言的while)
  • 2. 经典for循环(初始化;条件;后续操作)
  • 3. 无限循环
  • 4. 使用break和continue
  • 5 . 带标签的循环(可用于break/continue指定循环)
    • 1、break带标签
    • 2、continue带标签

Go语言中的for循环是唯一的循环结构,但可以通过不同形式实现各种循环需求。以下是Go中for循环的主要用法:

1. 基本for循环(类似其他语言的while)

go语言中没有while和do while操作,只能用基本for循环来代替while和do while。
基本语法:

for condition {// 循环体
}

示例代码:
以下for循环的执行顺序:
1、先判断i <= 3
2、执行大括号中的内容。
一直循环到判断条件不满足才退出。

i := 1
for i <= 3 {fmt.Println(i)i = i + 1
}

2. 经典for循环(初始化;条件;后续操作)

基本语法:

for initialization; condition; post {// 循环体
}

示例代码:
以下for循环的执行顺序:
1、先执行j := 7(这里可以不是定义,也可以是赋值,也可以省略)
2、进行condition判断,为true则进入第3步,false则退出for循环。
3、执行大括号中的内容。
4、执行post。
一直执行2、3、4直到2中判断为false。

for j := 7; j <= 9; j++ {fmt.Println(j)
}

3. 无限循环

基本语法:

for {// 无限循环体// 通常配合break使用
}

示例代码:
这个就相当于C语言中的while(1)语句。

for {fmt.Println("loop")break
}

4. 使用break和continue

1、break:跳出本层循环
2、continue:跳过本次循环
示例代码:
1、代码执行到break则直接退出这一层for循环,因为这里只有一层for循环,所以直接退出for循环。
2、代码执行到continue则直接进入循环,这里当n = 2的时候进入continue,则跳出本次循环,继续执行n++,再进行n <= 5判断,进入下一次循环。

for n := 0; n <= 5; n++ {if n%2 == 0 {continue}fmt.Println(n)if n > 3 {break}
}

5 . 带标签的循环(可用于break/continue指定循环)

1、break带标签

代码如下:
下面这段代码的输出结果:
0 0
0 1
0 2
1 1
当i = 1,j = 1的时候,跳出到标签处,跳出那一层循环,因此直接退出for循环。

outer:
for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if i == 1 && j == 1 {break outer  // 跳出外层循环}fmt.Println(i, j)}
}

2、continue带标签

代码如下:
下面这段代码的输出结果:
0 0
0 1
0 2
1 0
2 0
2 1
2 2
当i = 1,j = 1的时候,跳出到标签处,跳出那一次循环,因此直接最外层i = 1的时候不继续往下执行。

outer:
for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if i == 1 && j == 1 {continue outer  // 跳出外层循环}fmt.Println(i, j)}
}

相关文章:

  • AI图像处理之ComfyUI节点(二)
  • 前缀和——中心数组下标
  • Compose笔记(二十五)--Brush
  • NSString的三种实现方式
  • OpenHarmony外设驱动使用 (四),Face_auth
  • 三极管集电极输出电路分析
  • IT审计之外包
  • 【图像生成大模型】CogVideoX-5b:开启文本到视频生成的新纪元
  • 第三十七节:视频处理-视频读取与处理
  • 常见的 HTTP 接口(请求方法)
  • Uniapp 与 Uniapp X 对比:新手上手指南及迁移到 Uniapp X 的注意事项
  • Word文档图片和图表自动添加序号
  • 19. 结合Selenium和YAML对页面实例化PO对象改造
  • Elasticsearch基础篇-java程序通过RestClient操作es
  • BUUCTF——ReadlezPHP
  • Android 手写签名功能详解:从原理到实践
  • 第五部分:阶段项目 4:构建 RESTful API 服务器
  • 关于机器学习的实际案例
  • 【Java ee初阶】jvm(2)
  • 股票数据源对接技术指南:印度尼西亚、印度、韩国
  • 沧州盐碱地“逆天改命”:无用之地变良田,候鸟翔集水草丰美
  • 中美博弈新阶段,这个“热带中国”火了
  • 博物馆书单|走进博物馆,去体验一场与文明的对话
  • 解放日报:“感觉全世界人都在上海买买买”
  • 俄乌直接谈判结束
  • 消息人士称俄方反对美国代表参加俄乌直接会谈