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

GoLang教程006:循环控制语句

文章目录

  • 4、循环控制
    • 4.1 基本介绍
    • 4.2 基本语法结构
      • 4.2.1 经典三段式for循环
      • 4.2.2 类似while循环(省略初始化和递增语句)
      • 4.2.3 无限循环
    • 4.3 循环控制语句
      • 4.3.1 break
      • 4.3.2 continue
      • 4.3.3 goto
    • 4.4 range循环
      • 4.4.1 遍历切片
      • 4.4.2 遍历字符串
      • 4.4.3 遍历map
    • 4.5 循环嵌套

4、循环控制

4.1 基本介绍

在 Go(Golang)中,循环控制主要通过 for 语句实现。与其他语言(如 C、Java)相比,Go 只有一个循环关键字:for,它可以实现各种循环结构,包括经典的三段式循环、while 循环、无限循环等。

4.2 基本语法结构

4.2.1 经典三段式for循环

🥷示例代码:

package mainimport "fmt"func main() {for i := 0; i < 10; i++ {fmt.Println(i)}
}

✅运行结果:

image-20250722084504274

4.2.2 类似while循环(省略初始化和递增语句)

🥷示例代码:

package mainimport "fmt"func main() {i := 0for i < 10 {fmt.Println(i)i++}
}

✅运行结果:

image-20250722084655339

4.2.3 无限循环

🥷示例代码:

package mainimport "fmt"func main() {for {fmt.Println("无限循环")}
}

4.3 循环控制语句

4.3.1 break

用于提前终止循环。

🥷示例代码:

package mainimport "fmt"func main() {for i := 0; i < 10; i++ {if i == 5 {break}fmt.Println(i)}
}

✅运行结果:

image-20250722084927427

4.3.2 continue

跳过当前循环的剩余部分,直接进入下一次循环。

🥷示例代码:

package mainimport "fmt"func main() {for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println(i) // 只打印奇数}
}

✅运行结果:

image-20250722085059474

4.3.3 goto

可以跳转到指定标签的位置(不推荐用于控制循环,容易让代码变得混乱).

🥷示例代码:

package mainimport "fmt"func main() {i := 0
LOOP:if i >= 5 {return}fmt.Println(i)i++goto LOOP
}

4.4 range循环

4.4.1 遍历切片

🥷示例代码:

package mainimport "fmt"func main() {nums := []int{2, 4, 6, 8}for index, value := range nums {fmt.Printf("index: %d, value: %d\n", index, value)}
}

✅运行结果:image-20250722085334328

4.4.2 遍历字符串

🥷示例代码:

package mainimport "fmt"func main() {for index, ch := range "You know who i am." {fmt.Printf("index: %d, char: %c\n", index, ch)}
}

✅运行结果:

image-20250722085620604

4.4.3 遍历map

🥷示例代码:

package mainimport "fmt"func main() {m := map[string]string{"7": "凯文-杜兰特", "1": "阿门-汤普森"}for key, value := range m {fmt.Printf("key: %s, value: %s\n", key, value)}
}

✅运行结果:

image-20250722085901571

4.5 循环嵌套

🥷示例代码:

package mainimport "fmt"func main() {
outer:for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if i == 1 && j == 1 {break outer // 跳出最外层循环}fmt.Printf("i=%d, j=%d\n", i, j)}}
}

✅运行结果:

image-20250722090029422

http://www.lryc.cn/news/596239.html

相关文章:

  • 数据结构 之 【排序】(直接选择排序、堆排序、冒泡排序)
  • 自编码器表征学习:重构误差与隐空间拓扑结构的深度解析
  • Dockerfile 详解
  • 鸿蒙卡片开发保姆级教程
  • AI创作系列第22篇:前端缓存与更新机制重构 - 表情包系统的全面升级
  • anchor 智能合约案例6 之 token_lottery
  • 假发行业数字化突围,外贸ERP重构外协管理引擎,助力效率飞跃
  • 34、鸿蒙Harmony Next开发:使用动画-转场动画
  • Jmeter使用 - 2
  • Chrome 开发环境屏蔽 CORS 跨域限制
  • PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC
  • SQL 中 JOIN 顺序对性能的影响
  • FastDFS 6.11.0 单机环境搭建与测试(附 Nginx 集成)+ docker构建+k8s启动文件
  • 浏览器地址栏输入URL回车后白屏分析
  • Jenkins接口自动化测试(构建)平台搭建
  • Apache Ignite 中事务的使用方式和机制
  • Excel工具
  • ROS个人笔记
  • Qt Creator集成开发环境使用指南
  • K 近邻算法(K-Nearest Neighbors, KNN)详解及案例
  • 聊聊原生 CSS 变量:让样式更灵活的“魔法”
  • 大模型推理环境安装过程中踩坑记录
  • 野外具身视觉跟踪:北大团队TrackVLA让AI视觉跟踪进化到2.0时代
  • Springboot使用外部的Servelt容器(最简单的方式)
  • 1-bit AI 基础设施:第 1.1 部分 —— 在 CPU 上实现快速且无损的 BitNet b1.58 推理
  • ubuntu24.04安装CUDA、VLLM、Pytorch等并部署Qwen3-8B-AWQ【50系显卡通用】
  • proxmox 解决docker容器MongoDB创建报错MongoDB 5.0+ requires a CPU with AVX support
  • Leetcode力扣解题记录--第73题(矩阵置零)
  • Leetcode题解:209长度最小的子数组,掌握滑动窗口从此开始!!!
  • Vue中最简单的PDF引入方法及优缺点分析