当前位置: 首页 > 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)}
}
http://www.xdnf.cn/news/515629.html

相关文章:

  • 计算机组成与体系结构:Snooping-Based Protocols(监听式协议)
  • STM32 OTA 中断向量表重定向
  • Unity3D仿星露谷物语开发45之收集农作物特效
  • 第四天的尝试
  • 【网络】Wireshark练习3 analyse DNS||ICMP and response message
  • 2021ICPC四川省赛个人补题ABDHKLM
  • DeepSeek本地部署全攻略:从零搭建到Web可视化及数据训练
  • AM32电调学习解读八:无感驱动相位波形解析
  • STK手动建链+matlab联调
  • 小麦病害分割数据集labelme格式1882张4类别
  • BGP策略实验练习
  • 学习日志10 java
  • ubuntu中已经存在python3.12.3, 如何安装python3.10.8且命令python3版本切换为python3.10.8
  • MySQL之储存引擎和视图
  • 访问共享打印机提示错误0x00000709多种解决方法(支持win10和win11)
  • minicom串口调试助手
  • 顺 序 表:数 据 存 储 的 “ 有 序 阵 地 ”
  • 禾本科植物胚乳的发育
  • 从c++到python
  • 能力验证及大练兵活动第一期
  • Ansible模块——文件属性查看,文件或目录创建和属性修改
  • 外观数列 --- 模拟
  • 【JAVA】HashMap深度剖析:哈希冲突与扩容机制(25)
  • Debezium快照事件监听器系统设计
  • esp32课设记录(一)按键的短按、长按与双击
  • TYUT-企业级开发教程-第三章
  • leetcode hot100刷题日记——1.两数之和
  • 玄机-第一章 应急响应-webshell查杀
  • Neovim 如何安装和配置缩进标识插件 indent-blankline.nvim
  • 在Gitee中配置SSH公钥,建立远程仓库和本地仓库的连接