Golang 循环

Golang 循环

Go语言只包含一个单一的循环,即for-loop。for 循环是一种重复控制结构,允许我们编写一个执行特定次数的循环。在Go语言中,这个for循环可以以不同的形式使用,这些形式是。

1.作为简单的for循环 它与我们在其他编程语言中使用的类似,如C、C++、Java、C#等。

语法。

for initialization; condition; post{
       // statements....
}

这里:

  • 初始化语句是可选的,在for循环开始前执行。初始化语句总是在一个简单的语句中,如变量声明,增量或赋值语句,或函数调用。
  • 条件语句持有一个布尔表达式,它在循环的每次迭代开始时被评估。如果条件语句的值为真,那么循环就会执行。
  • 后置语句在for-loop的主体之后执行。在post语句之后,如果条件语句的值为false,则循环结束,条件语句再次评估。

示例

// Go program to illustrate the  
// use of simple for loop 
package main
  
import "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("GeeksforGeeks\n")  
    }
    
}

输出

GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks

2. For 循环作为无限循环: For 循环也可以作为无限循环使用,方法是将For 循环中的三个表达式全部删除。当用户在for循环中没有写条件语句时,意味着条件语句为真,循环进入无限循环。

语法。

for{
     // Statement...
}

示例

// Go program to illustrate the  
// use of an infinite loop 
package main
  
import "fmt"
  
// Main function
func main() {
      
    // Infinite loop
    for {
      fmt.Printf("GeeksforGeeks\n")  
    }
    
}

输出

GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
...........

3.for循环作为while循环: for循环也可以作为while循环工作。这个循环被执行,直到给定的条件为真。当给定条件的值为假时,循环结束。

语法。

for condition{
    // statement..
}

示例

// Go program to illustrate the  
// the for loop as while Loop
package main
  
import "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 main
  
import "fmt"
  
// Main function
func main() {
      
    // Here rvariable is a array
    rvariable:= []string{"GFG", "Geeks", "GeeksforGeeks"} 
      
    // 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 GFG
1 Geeks
2 GeeksforGeeks

5.对字符串使用for循环: for循环可以迭代一个字符串的Unicode码位。

语法。

for index, chr:= range str{
     // Statement..
}

这里,index是存储UTF-8编码的第一个字节的变量,chr存储给定字符串的字符,str是一个字符串。

示例

// Go program to illustrate the  
// use for loop using string
package main
  
import "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 0
The index number of U+0061 is 1
The index number of U+0062 is 2
The index number of U+0043 is 3
The index number of U+0064 is 4

6.For Map: for 循环可以遍历Map的键和值对。

语法。

for key, value := range map { 
     // Statement.. 
}

示例

// Go program to illustrate the  
// use for loop using maps
package main
  
import "fmt"
  
// Main function
func main() {
      
    // using maps
    mmap := map[int]string{
        22:"Geeks",
        33:"GFG",
        44:"GeeksforGeeks",
    }
    for key, value:= range mmap {
       fmt.Println(key, value) 
    }
    
}

输出

22 Geeks
33 GFG
44 GeeksforGeeks

7.For 通道: for 循环可以迭代通道上连续发送的数值,直到关闭。

语法。

for item := range Chnl { 
     // statements..
}

例子

// Go program to illustrate the  
// use for loop using channel
package main
  
import "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) 
    }
    
}

输出

100
1000
10000
100000

重要的是

  • 在for循环的三个语句周围不使用括号。
  • 大括号在for循环中是强制性的。
  • 开头的大括号应该在存在post语句的同一行中。
  • 如果数组、字符串、片断或地图是空的,那么for循环就不会出现错误并继续其流程。或者换句话说,如果数组、字符串、片断或地图是空的,那么for循环的迭代次数就是零。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程