02-for循环
1.01-包引用和引用顺序2.02-运算符号、标识符、注释、关键字3.03-变量和作用域4.02-常量(const)5.03-数组(array)6.04-切片(slice)7.05-map8.06-指针(pointer)9.07-通道(channel)10.08-结构体(struct)11.01-if语句
12.02-for循环
13.04-select语句14.03-switch语句15.make()、new()16.copy(切片间复制)17.append(增加切片成员)18.delete(删除map的成员)19.panic&recover20.03-匿名函数和闭包21.01-函数简单使用22.02-形参和实参23.04-递归函数24.05-方法25.06-接口(interface)26.01-并发27.02-携程通讯28.03-携程同步29.01-连接和建表30.02-创建数据31.03-基本查询32.04-高级查询33.05-初始化34.06-更新数据35.07-删除数据36.08 事务37.根据操作系统程序自动选择不同常量38.golang字串的base64编码解码39.golang数据类型转换40.golang 时间/时间戳的获取和转换@
目录
1. C语言风格
1.1 语法
for 赋值;控制条件;增减 { }
1.2 示例
- 代码
package main import "fmt" var j int = 0 func main() { for i:=0;i<100;i++ { j = j + i } fmt.Println(j) }
- 输出
# go run sum.go 5050
2. 比较
2.1 语法
for控制条件{ }
2.2 示例
- 代码
package main import "fmt" var i, j = 0, 0 func main() { for i <= 100 { j = j + i i++ } fmt.Println(j) }
- 输出
# go run sum.go 5050
3. 无限循环
for true { }
4. Range
4.1 数组和切片的范围
1)示例:用range求数组或切片的和
package main import "fmt" func main() { nums := []int{2, 3, 4} sum := 0 for _, num := range nums { sum += num } }
说明:
给名为nums的range传如两个变量——index和值。
但是不需要使用该元素的index,因此用空白符“_”代替(如果写成变量,但是main中没有引用就报错了)
输出
sum: 9
2)打印数组的index
package main import "fmt" func main() { nums := []int{2, 3, 4} for i, num := range nums { if num == 3 { fmt.Println("index:", i) } } }
结果
index: 1
4.2 map 上的应用
- 代码
package main import "fmt" func main() { kvs := map[string]string{"a": "apple", "b": "banana"} for k, v := range kvs { fmt.Printf("%s -> %s\n", k, v) } }
- 输出结果
a -> apple b -> banana
4.3 枚举Unicode字符串
- 代码
package main import "fmt" func main() { for i, c := range "wei" { fmt.Println(i, c) } }
- 输出
0 119 1 101 2 105
5. 循环控制
5.1 continue
1)作用:跳过本次循环之后的部分,继续循环
2)示例
脚本:
package main import "fmt" func main() { for a := 1 ;a <= 10; a++ { if a == 8 { continue; } fmt.Printf("a 的值为 : %d\n", a); } }
说明:a==8 时,跳过了本次循环之后的打印值的部分。
执行
a 的值为 : 1 a 的值为 : 2 a 的值为 : 3 a 的值为 : 4 a 的值为 : 5 a 的值为 : 6 a 的值为 : 7 a 的值为 : 8 a 的值为 : 9 a 的值为 : 10
5.2 break
1)作用:跳出循环
2)示例 循环switch 开关
代码:
package main import "fmt" func main() { var a int = 10 for a < 20 { fmt.Printf("a 的值为 : %d\n", a); a++; if a > 15 { break; } } }
输出结果:
a 的值为 : 10 a 的值为 : 11 a 的值为 : 12 a 的值为 : 13 a 的值为 : 14 a 的值为 : 15
说明:到if条件的时候执行break 跳出了for循环。
5.3 goto
1)作用:
代码
package main import "fmt" func main() { var i int = 1 fmt.Println("wait 1 ") LOOP: fmt.Println("wait 2 ") fmt.Println("wait 3 ") for i < 10 { i++ if i == 8 { goto LOOP } fmt.Printf("i 的值为 : %d\n", i); } }
说明: 当i==8 时 跳过本次循环后边的打印。回到脚本前边LOOP的位置,继续打印wait 2 ,wait 3
执行结果
分类:
go语言开发 / go基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具