Go 语言的循环语句
在 Go 语言中减少了循环语句的关键字,仅有一个 for 关键字。但是并没有减少其功能,而且它更是兼容了其它语言中的while关键字的用法,甚至更强大。
1. for 循环语句
1.1 普通用法
在 Go 语言中,for 循环之后一样可以跟三个语句,单次表达式;条件表达式;末尾循环体,但是它不需要使用()来包裹这三个表达式,写法上更加的简洁。同时它也和其它语言一样,可以任意省略这三个表达式。
代码示例:
代码块
- 1
package main - 2
- 3
import "fmt" - 4
- 5
func main() { - 6
for a := 0; a < 10; a++ { - 7
fmt.Println(a) - 8
} - 9
}
省略单次表达式代码示例:
代码块
- 1
package main - 2
- 3
import "fmt" - 4
- 5
func main() { - 6
a := 0 - 7
for ; a < 10; a++ {//表达式可以省略,但是;不能省略 - 8
fmt.Println(a) - 9
} - 10
}
执行结果:

1.2 代替 while 的用法
在其它大部分语言中 for 循环中省略单次表达式和末尾循环体其实就和其它语句中的 while 用法一致了。所以在 Go 语言中,直接使用省去单次表达式和末尾循环体的 for 循环语句来代替 while 的用法,为了简便代码书写,Go 语言中 for 循环语句在省去单次表达式和末尾循环体时,可以不写分号。
代码示例:
代码块
- 1
package main - 2
- 3
import "fmt" - 4
- 5
func main() { - 6
a := 0 - 7
for a < 10 { //和其它语言中的while(a<10)一致 - 8
fmt.Println(a) - 9
a++ - 10
} - 11
}
执行结果:

2. for 语言中的break 和 continue
在我们的生产环境中,经常需要用到死循环的场景。所以在 Go 语言中新增了一个 for 关键字死循环的用法,让程序员不用写无聊的 for(;;){}和do{} while(1)。同时可以使用 break 和 continue 来控制循环。
Tips:break 和 continue 的逻辑和语法类似,故本文只介绍break。
2.1 break跳出单层死循环
在你想要结束一个死循环的时候,只需要执行一个 break 语句即可。
代码示例:
代码块
- 1
package main - 2
- 3
import "fmt" - 4
- 5
func main() { - 6
a := 0 - 7
for { //死循环的写法就是省略 单次表达式;条件表达式;末尾循环体 - 8
fmt.Println(a) - 9
a++ - 10
if a >= 10 { - 11
break //跳出死循环 - 12
} - 13
} - 14
}
执行结果:

2.2 break跳出多层死循环
在其它语言中,你很难去控制跳出循环的层数,在 Go 语言中提供了一种break LOOP的写法,可以使循环跳出到 LOOP 所在的位置。
代码示例:
代码块
- 1
package main - 2
- 3
import "fmt" - 4
- 5
func main() { - 6
a := 0 - 7
LOOP: - 8
for { - 9
for { - 10
fmt.Println(a) - 11
a++ - 12
if a >= 10 { - 13
break LOOP //跳出循环至LOOP所在的层级 - 14
} - 15
} - 16
} - 17
}
执行结果:

3. 小结
本文主要介绍了 for 关键字在 Go 语言的循环中的用法:
- for 之后的语句不需要使用
()包裹; break+LOOP的形式可以一次性跳出多层循环;- for 可以和其它语言中的 while 一样使用;
- for{…} 的形式是一个死循环。
文章来源于网络,侵删!
