Go语言仅用for实现所有循环:①三段式(如for i:=0; i

Go语言的循环语句只用一个for关键字,通过不同的写法来实现各种循环需求。它没有独立的while或do-while循环,所有功能都由for承担。
经典三段式for循环
这是最常用的写法,和C语言类似,包含初始化、条件判断和迭代操作三个部分,用分号;隔开。
-
初始化语句:在循环开始前执行一次,通常用于声明和初始化计数器变量,比如
i := 0。 -
条件表达式:在每次循环开始前进行判断。如果为
true,则执行循环体;如果为false,则退出循环。 -
后续操作:在每次循环体执行完毕后执行,通常用于更新计数器,比如
i++或i--。
示例代码会输出数字0到4:
for i := 0; i fmt.Println(i)}
条件循环(等价于while)
Go语言没有while关键字。要实现“当条件满足时就重复执行”的逻辑,只需省略三段式中的初始化和后续操作,只保留条件表达式。
立即学习“go语言免费学习笔记(深入)”;
- 将变量的初始化放在
for语句之前。 - 在循环体内完成变量的更新,否则可能造成死循环。
这个例子与上面的三段式效果相同,但结构更清晰,适合那些循环次数不固定、依赖外部状态的情况:
i := 0for i fmt.Println(i)
i++
}
无限循环与range遍历
当需要让循环一直运行,直到遇到特定的退出条件时,可以使用无限循环。同时,for range是Go中遍历集合数据的核心语法。
-
无限循环:省略
for后的所有内容,写成for {}。这种循环会一直执行,必须在循环体内使用break语句或return来退出,常用于服务器主循环或后台任务。 -
range遍历:使用
for ... range结构可以方便地遍历数组、切片、字符串、map和channel。它会自动返回索引(或键)和值。- 遍历切片:
for index, value := range slice - 遍历map:
for key, value := range map - 如果不需要索引或键,可以用下划线
_忽略,例如for _, value := range slice。
- 遍历切片:
一个简单的无限循环示例:
for {fmt.Println("Hello")
// 需要有某种条件来break
if someCondition {
break
}
}
基本上就这些。掌握这三种主要用法,就能应对Go语言中的大部分循环场景了。










