go之for循环

循环介绍

  在go中,只有for循环,没有其他循环关键字,没有while循环,也没有do while

  通过for循环是可以实现 类似于while的功能

语法

1
2
3
for 变量初始化;条件;自增{
    循环体的内容
}

  重点记忆:for关键字后三段,都可以省略不写

  break和continue的使用方法和python的一样

for循环使用

  基本使用,打印0-9,变量定义需要简略声明方式

1
2
3
4
5
6
7
8
9
10
package main
 
import "fmt"
 
func main() {
 
    for i := 0; i < 10; i++ {
        fmt.Println(i)
    }
}

  省略第一部分,和上面的区别在于i的作用域范围不一样,这个i在for外包还有效

1
2
3
4
5
6
7
8
9
10
11
12
package main
 
import "fmt"
 
func main() {
    i := 0
    //var i =0
    //var i int = 0
    for ; i < 10; i++ { // 第一个分号必须写
        fmt.Println(i)
    }
}

  省略第三部分

1
2
3
4
5
6
7
8
9
10
package main
 
import "fmt"
 
func main() {
    for i := 0; i < 10; { // 分号必须写
        fmt.Println(i)
        i++
    }
}

  省略第一部分和第三部分

  这就是while循环

1
2
3
4
5
6
7
8
9
10
11
12
package main
 
import "fmt"
 
func main() {
    i := 0
    //for ;i < 10; { // 分号可以不写
    for i < 10 { // 分号可以不写
        fmt.Println(i)
        i++
    }
}

  三部分全部省略

  死循环,等同于 for true{}

1
2
3
4
5
6
7
8
9
package main
 
import "fmt"
 
func main() {
    for ; ; {
        fmt.Println("hello world")
    }
}

  range关键字

  上面的for循环都是基于索引的循环,python中没有基于索引的循环,python中都是基于迭代的循环,python中的for循环,都是可迭代对象。

  go中基于索引的和基于迭代的

  基于迭代一般用法

1
2
3
4
5
6
7
8
9
10
package main
 
import "fmt"
 
func main() {
    var a [3]int=[3]int{4,5,6}
    for i:=0;i<len(a);i++{ // 基于索引
        fmt.Println(a[i])
    }
}

  使用range关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main
 
import "fmt"
 
func main() {
    var a [3]int=[3]int{4,5,6}
    for i,v:=range a{  //range 在go中是关键字
 
        fmt.Println(i,v)
    }
}
//结果
//0 4
//1 5
//2 6

  如果只想要值

1
2
3
4
5
6
7
8
9
10
11
package main
 
import "fmt"
 
func main() {
    var a [3]int=[3]int{4,5,6}
    for _,v:=range a{  //range 在go中是关键字
 
        fmt.Println(v)
    }
}

  

posted @   那就凑个整吧  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示