当前位置: 首页 > 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.dtcms.com/a/292101.html

相关文章:

  • HTML结构解析
  • Python 图像处理库Pillow
  • 智能制造——解读52页汽车设计制造一体化整车产品生命周期PLM解决方案【附全文阅读】
  • 中小制造企业如何对技术图纸进行管理?
  • Dockerfile 详解
  • 客户案例 | Jabil 整合 IT 与运营,大规模转型制造流程
  • 生存分析机器学习问题
  • 跨越语言壁垒!ZKmall开源商城多语言架构如何支撑电商全球化布局
  • Web3与区块链如何革新网络安全——走在前沿
  • 「Linux命令基础」用户管理
  • redis可视化工具推荐——Tiny RDM
  • 原码反码补码
  • MSTP实验+BPDU保护机制+根桥保护机制
  • CSS自适应布局实战指南
  • JS--M端事件
  • 16核32G服务器实现5000 QPS高并发的业务线程池优化配置方案
  • Kafka基础理论速通
  • Linux研学-Tomcat安装
  • 异构融合 4A:重构高性能计算与复杂场景分析的安全与效率边界
  • 时序数据库IoTDB好不好?
  • Android-API调用学习总结
  • 基于Surfer与Voxler数据处理及可视化技术应用
  • 输电线路外破点位可视化监拍装置的 AI 智能识别可应对哪些电力安全隐患?如何保障其识别精度与响应速度?
  • c++,从汇编角度看lambda
  • 查看 iOS iPhone 设备上 App 和系统运行时的实时日志与崩溃日志
  • 十分钟快速完成光伏设计方案
  • C++11特性学习
  • UE5保姆级基础教程(第五章)
  • Linux操作系统之线程(六):线程互斥
  • 金山办公WPS项目产品总监陈智新受邀为第十四届中国PMO大会演讲嘉宾