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

循环语句:for、range -《Go语言实战指南》

Go 语言没有 while 和 do...while,所有循环控制统一通过 for 实现。搭配 range 关键字,可以高效遍历数组、切片、字符串、map 和 channel。


一、基本 for 语句

1. 经典三段式写法(类似 C)
for 初始化语句; 条件表达式; 递增语句 {// 循环体
}
示例:
for i := 0; i < 5; i++ {fmt.Println(i)
}

二、for 等价 while 的写法

当只需要判断条件:

i := 0
for i < 5 {fmt.Println(i)i++
}

等价于其他语言中的 while 循环。


三、无限循环

for {fmt.Println("无限循环")// 可通过 break 或 return 退出
}

四、使用 break 和 continue

for i := 0; i < 10; i++ {if i == 3 {continue // 跳过当前这轮}if i == 7 {break // 提前退出循环}fmt.Println(i)
}

五、使用 range 遍历结构

1. 遍历数组 / 切片
nums := []int{10, 20, 30}
for index, value := range nums {fmt.Printf("下标:%d 值:%d\n", index, value)
}

可忽略变量:

for _, val := range nums {fmt.Println(val)
}

2. 遍历字符串(按 Unicode 字符)
s := "hello 世界"
for i, r := range s {fmt.Printf("索引:%d 字符:%c\n", i, r)
}

注:Go 中 range 字符串会按 rune(字符) 处理,不会出现 UTF-8 半个字符乱码问题。


3. 遍历 map
m := map[string]int{"A": 1, "B": 2}
for k, v := range m {fmt.Printf("键:%s 值:%d\n", k, v)
}

遍历 map 的顺序是随机的,每次运行顺序可能不同。


4. 遍历 channel
ch := make(chan int, 3)
ch <- 1
ch <- 2
ch <- 3
close(ch)for v := range ch {fmt.Println(v)
}

六、小结

用法示例
经典计数循环for i := 0; i < n; i++
类似 while 循环for 条件
无限循环for {}
遍历数组、map、字符串for k, v := range ...
控制语句breakcontinue

相关文章:

  • 【layout组件 与 路由镶嵌】vue3 后台管理系统
  • uniapp(微信小程序)>关于父子组件的样式传递问题(自定义组件样式穿透)
  • 涨薪技术|0到1学会性能测试第58课-垃圾回收器
  • 【Pandas】pandas DataFrame cummax
  • 【LeeCode】1.两数之和
  • 读取.ini后缀类型的马达配置文件并进行赋值
  • 【操作系统】零拷贝技术
  • LearnOpenGL02:绘制三角形和矩形
  • 【办公类-99-06】20250512用Python制作PPT的GIF照片动图(统一图片大小、自定义不同切换秒数,以蝴蝶为例)
  • 家具制造行业的现状 质检LIMS如何赋能家具制造企业质检升级
  • 学习黑客5 分钟深入浅出理解系列之 Windows 资源监视器
  • LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
  • Windows 安装 Milvus
  • 基于ESP32的健康智能机器人
  • 使用conda导致无法找到libpython动态库
  • 高粘度、强腐蚀介质解决方案:V型气动带手动活塞式开关调节球阀的五大核心优势-耀圣控制
  • react项目阅读记录
  • 做为一个平台,给第三方提供接口的时候,除了要求让他们申请 appId 和 AppSecret 之外,还应当有哪些安全选项,要过等保3级
  • 加固python文件
  • 用短说社区搭建的沉浸式生活方式分享平台
  • 专访|韩国世宗研究所中国研究中心主任:李在明若上台将推行均衡外交
  • 中国恒大:清盘人向香港高等法院申请撤回股份转让
  • 《审判》|“被告”的魅力:K在等什么?
  • 打击网络谣言、共建清朗家园,中国互联网联合辟谣平台2025年4月辟谣榜
  • 均价19.5万元/平米!上海徐汇滨江地王项目“日光”,销售额近70亿元
  • 江西省司法厅厅长张强已任江西省委政法委分管日常工作副书记