GO中没有循环结构,可以通过for来实现循环,当条件一直为真时,for循环就进入死循环状态,中间可以使用break跳出,可以用标签方式跳出指定循环
Go语言只有for循环这一种循环语句。for循环有多种形式,其中一种如下所示:
for initialization; condition; post {
// zero or more statements
}
for循环三个部分不需括号包围。大括号强制要求, 左大括号必须和post语句在同一行。
initialization语句是可选的,在循环开始前执行。initalization如果存在,必须是一条简单语句 (simple statement),即,短变量声明、自增语句、赋值语句或函数调用。
condition 是一 个布尔表达式(boolean expression),其值在每次循环迭代开始时计算。如果为 true 则执 行循环体语句。
post 语句在循环体执行结束后执行,之后再次对 conditon 求 值。 condition 值为 false 时,循环结束。
package main
import "fmt"
func main() {
//初始化自语句;条件子语句;后置子语句
var res int
for i := 1; i <= 100; i++ {
res = res + i
}
fmt.Println(res)
// 初始化语句可以放在for前面,后置子语句可以放在for里面
m := 1
for m < 100 {
res = res + 1
m++
}
// 死循环
for true {
res = res + 1
}
for {
res = res + 1
}
// 数据,字典,切片,i,ch分别为下标和值
desc:="abcdefg"
for i,ch :=range desc{
fmt.Printf("%T,%T;%d,%q\n",i,ch,i,ch)
}
}
在多层for循环可以用标签方式跳出指定循环层,out为标签,当执行到i=2时,使外层循环跳出
out:for i:=0;i < 10;i++{
for j:=0;j<5;j++{
fmt.Printf("i:%d,j:%d\n",i,j)
if i==2{
break out
}
}
}