### for循环
```
for 初始语句; 条件表达式; 赋值表达式 {
循环体
}
```
```
package main
import "fmt"
func main() {
for i := 1; i < 10; i++ {
for j := 1; j < i+1; j++ {
//fmt.Println(j, "*", i, "=", (j * i))
fmt.Printf("%v*%v=%v \t", j, i, i*j)
// 九九乘法表
}
fmt.Println()
}
}
结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
```
### break跳出循环
```
package main
import "fmt"
func main() {
i := 1
for {
for {
if i > 5 {
fmt.Println("跳出内层for循环")
break
}
fmt.Println(i)
i++
}
fmt.Println("跳出外层for循环")
break
}
}
结果:
1
2
3
4
5
跳出内层for循环
跳出外层循环
```
可以设置标签 让break直接跳出循环
```
package main
import "fmt"
func main() {
i := 1
OuterLoop:
for {
for {
if i > 5 {
fmt.Println("跳出OuterLoop标签对应的循环")
break OuterLoop
}
fmt.Println(i)
i++
}
}
}
结果:
1
2
3
4
5
跳出OuterLoop标签对应的循环
```
go语言没有while循环,但是可以做出效果出来
```
package main
import "fmt"
func main() {
i := 1
for {
fmt.Println(i)
i++
if i == 5 {
fmt.Println("结束for循环")
break
}
}
}
结果:
1
2
3
4
结束for循环
```
### continue继续循环
> **结束当前循环体,开始下次循环。也可以跟标签**
```
package main
import "fmt"
func main() {
OuterLoop:
for i := 0; i < 5; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
fmt.Println(i, j)
continue OuterLoop
}
}
}
}
结果:
0 1
1 1
2 1
3 1
4 1
```
- 安装开发环境
- 安装开发环境
- 安装详细教程
- 引入包
- Go语言基础
- 基本变量与数据类型
- 变量
- 数据类型
- 指针
- 字符串
- 代码总结
- 常量与运算符
- 常量
- 运算符
- 流程控制
- if判断
- for循环
- switch分支
- goto跳转
- 斐波那契数列
- Go语言内置容器
- 数组
- 切片
- 映射
- 函数
- 函数(上)
- 函数(中)
- 函数(下)
- 小节
- 包管理
- 结构体
- 结构体(上)
- 结构体(中)
- 结构体(下)
- 小节
- 错误处理
- 错误处理
- 宕机
- 错误应用
- 小节
- 文件操作
- 获取目录
- 创建和删除目录
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 处理JSON文件
- 接口与类型
- 接口的创建与实现
- 接口赋值
- 接口嵌入
- 空接口
- 类型断言(1)
- 类型断言(2)
- 小节
- 并发与通道
- goroutine协程
- runtime包
- 通道channel
- 单向通道channel
- select
- 线程同步
- 多线程的深入学习
- http编程
- http简介
- Client和Request
- get请求
- post请求
- 模块函数方法
- 模块
- fmt库,模块
- 项目练习
- 爬虫:高三网
- 爬虫:快代理
- 爬虫:快代理2
- 多线程:通道思路
- 多线程爬虫:快代理