Go语言仅包含一个for循环。 for循环是一种重复控制结构, 它使我们可以编写执行特定次数的循环。在Go语言中, 此for循环可以以不同的形式使用, 形式包括:
1. for循环简单与我们在其他编程语言(例如C, C ++, Java, C#等)中使用的相似。
语法如下:
for initialization;
condition;
post{// statements....}
这里,
- 的初始化语句是可选的, 在for循环开始之前执行。初始化语句始终位于简单的语句中, 例如变量声明, 递增或赋值语句或函数调用。
- 的健康)状况语句包含一个布尔表达式, 该表达式在循环的每次迭代开始时进行评估。如果条件语句的值为true, 则执行循环。
- 的发布语句在for循环的主体之后执行。在post语句之后, 如果条件语句的值为false, 则条件语句再次求值, 然后循环结束。
// Go program to illustrate the
// use of simple for loop
package mainimport "fmt"// Main function
func main() {// for loop
// This loop starts when i = 0
// executes till i<
4 condition is true
// post statement is i++
for i := 0;
i <
4;
i++{
fmt.Printf( "lsbin\n" )
}}
输出如下:
lsbinlsbinlsbinlsbin
2.对于循环作为无限循环:通过从for循环中删除所有三个表达式, for循环也可用作无限循环。如果用户未在for循环中编写条件语句, 则意味着条件语句为true, 并且循环进入无限循环。
语法如下:
for{// Statement...}
例子:
// Go program to illustrate the
// use of an infinite loop
package mainimport "fmt"// Main function
func main() {// Infinite loop
for {
fmt.Printf( "lsbin\n" )
}}
输出如下:
lsbinlsbinlsbinlsbinlsbinlsbinlsbinlsbinlsbinlsbin...........
3. for循环, 而while循环:for循环也可以用作while循环。执行此循环, 直到给定条件为真为止。当给定条件的值为false时, 循环结束。
语法如下:
for condition{// statement..}
例子:
// Go program to illustrate the
// the for loop as while Loop
package mainimport "fmt"// Main function
func main() {// while loop
// for loop executes till
// i <
3 condition is true
i:= 0
for i <
3 {
i += 2
}
fmt.Println(i)
}
输出如下:
4
4. for循环中的简单范围:你也可以在for循环中使用范围。
语法如下:
for i, j:= range rvariable{// statement..}
这里,
- i和j是分配迭代值的变量。它们也称为迭代变量。
- 第二个变量j是可选的。
- 范围表达式在循环开始前被评估一次。
// Go program to illustrate the
// use of simple range loop
package mainimport "fmt"// Main function
func main() {// Here rvariable is a array
rvariable:= []string{ "GFG" , "Geeks" , "lsbin" } // i and j stores the value of rvariable
// i store index number of individual string and
// j store individual string of the given array
for i, j:= range rvariable {
fmt.Println(i, j)
}}
输出如下:
0 GFG1 Geeks2 lsbin
5.对字符串使用for循环:for循环可以遍历字符串的Unicode代码点。
语法如下:
for index, chr:= range str{// Statement..}
在这里, 索引是存储UTF-8编码代码点的第一个字节的变量, 并且chr存储给定字符串的字符并str是一个字符串。
例子:
// Go program to illustrate the
// use for loop using string
package mainimport "fmt"// Main function
func main() {// String as a range in the for loop
for i, j:= range "XabCd" {
fmt.Printf( "The index number of %U is %d\n" , j, i)
}}
输出如下:
The index number of U+0058 is 0The index number of U+0061 is 1The index number of U+0062 is 2The index number of U+0043 is 3The index number of U+0064 is 4
6.对于地图:for循环可以遍历映射的键和值对。
语法如下:
for key, value := range map { // Statement.. }
例子:
// Go program to illustrate the
// use for loop using maps
package mainimport "fmt"// Main function
func main() {// using maps
mmap := map[ int ]string{
22: "Geeks" , 33: "GFG" , 44: "lsbin" , }
for key, value:= range mmap {
fmt.Println(key, value)
}}
输出如下:
22 Geeks33 GFG44 lsbin
7.对于渠道:for循环可以遍历通道上发送的顺序值, 直到关闭为止。
语法如下:
for item := range Chnl { // statements..}
例子:
// Go program to illustrate the
// use for loop using channel
package mainimport "fmt"// Main function
func main() {// using channel
chnl := make(chan int )
go func(){
chnl <
- 100
chnl <
- 1000
chnl <
- 10000
chnl <
- 100000
close(chnl)
}()
for i:= range chnl {
fmt.Println(i)
}}
输出如下:
100100010000100000
重要事项:
- 在for循环的三个语句中不使用括号。
- 花括号在for循环中是必需的。
- 左括号应与post语句所在的行相同。
- 如果数组, 字符串, 切片或映射为空, 则for循环不会给出错误并继续其流程。换句话说, 如果数组, 字符串, 切片或映射为nil, 则for循环的迭代次数为零。
推荐阅读
- Python MySQL – Where子句用法详细介绍
- PHP fopen()用法介绍(函数打开文件或URL)
- 算法设计(在一个单链表中反向交替K个节点)
- 桥接器(本地互联网络设备)简介
- CSS堆叠页面插件
- 在C++中标记字符串介绍详细指南
- 如何在C#中查找数组的排名
- PHP Ds Stack toArray()函数用法介绍
- 如何在Golang中修剪字符串()