初始语句内定义的变量,随着循环结束而销毁
for1 完全体
for 初始语句;条件表达式;结束语句 {
循环体代码
}funcmain(){for i :=1; i <10; i++{
fmt.Println(i)}}for2 无头体
for;条件表达式;结束语句 {// 省略初始语句,分号不能省略
循环体代码
}funcmain(){
i :=0for; i <10; i++{
fmt.Println(i)}}for3 无尾体
for 初始语句;条件表达式;{// 省略结束语句,分号不能省略
循环体代码
}funcmain(){for i :=1; i <10;{
fmt.Println(i)
i++}}for4 彻头彻尾体
for 条件表达式 {// 初始语句和结束语句都省略,分号也可以省略
循环体代码
}funcmain(){
i :=1for i <10{
fmt.Println(i)
i++}}for5 无限体
for{
循环体代码
}funcmain(){for{
fmt.Println("Hello!")}}for6 遍历体
数组、切片、字符串返回索引和值
map返回键和值
通道只返回值
for 变量名 :=range 可迭代对象 {
循环体代码
}funcmain(){
name :="123abc一二三"for i, v :=range name {
fmt.Printf("%d: %c\n", i, v)
fmt.Printf("%T: %T\n", i, v)}}for7 俄罗斯套娃
funcmain(){for i :=1; i <10; i++{
msg :=""for o :=1; o <= i; o++{
msg += fmt.Sprintf("%dx%d=%d ", i, o, i*o)}
fmt.Println(msg)}}for8 跳出三界
funcmain(){
i :=1for{if i >10{break}
fmt.Println(i)
i++}}for9 跳过当世
funcmain(){for i :=1; i <10; i++{if i ==5{continue}
fmt.Println(i)}}
2.3 switch case
switch 变量 {case1: // 变量等于1时执行
代码
case2:
代码 // 变量等于2时执行default:
代码 // 不满足以上条件时执行}funcmain(){
n :=3switch n {case1:
fmt.Println("1")case2:
fmt.Println("2")default:
fmt.Println("null")}}
2.4 goto
funcmain(){for i :=1; i <10; i++{for o :=1; o <10; o++{if o ==5{goto tag // 跳转到tag处}
fmt.Printf("%d-%d\n", i, o)}}
tag:// 跳转到此处
fmt.Println("done")}