English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go语言for循环是一种重复控制语句,它使我们可以编写执行特定次数的循环。在Go语言中,此for循环可以以不同的形式使用,形式包括:
1.简单的for循环我们在其他编程语言(例如C,C ++,Java,C#等)中使用的相似。
문법:
for initialization; condition; post{ // 语句.... }
这里,
在初始化(initialization)语句是可选的,用于循环开始之前执行。初始化语句始终位于简单的语句中,例如变量声明,递增或赋值语句或函数调用。
条件(condition)语句包含一个布尔表达式,该表达式在循环的每次迭代开始时计算。如果条件语句的值为true,则执行循环。
post语句在for循环体之后执行。在post语句之后,条件语句再次计算条件语句的值是否为false,然后循环结束。
//使用for循环 package main import "fmt" //主函数 func main() { // for 循环 //这个循环在i = 0时开始执行,直到i<4条件为真 //post语句是i++ for i := 0; i < 4; i++{ fmt.Printf("w3codebox\n") } }
출력:
w3codebox w3codebox w3codebox w3codebox
2.将for循环作为无限循环:通过从for循环中删除所有三个表达式,for循环也可用作无限循环。如果用户未在for循环中编写条件语句,则意味着条件语句为true,并且循环进入无限循环。
문법:
for{ // 语句... }
// 使用无限循环 package main import "fmt" func main() { // 无限循环 for { fmt.Printf("w3codebox\n") } }
출력:
w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox ...........
3. for循环用作while循环: for循环也可以用作while循环。执行此循环,直到给定条件为真为止。当给定条件的值为false时,循环结束。
문법:
for condition{ //문장.. }
//for循环与while循环相同 package main import "fmt" func main() { //while循环 //for循环执行到 //i <3条件为真 i:= 0 for i < 3 { i += 2 } fmt.Println(i) }
출력:
4
4. for循环中的简单范围:您也可以在for循环中使用范围。
문법:
for i, j:= range rvariable{ // 문장.. }
这里,
i和j是分配迭代值的变量。它们也称为迭代变量。
第二个变量,即j是可选的。
范围表达式在循环开始之前被评估一次。
package main import "fmt" func main() { //这里rvariable是一个数组 rvariable:= []string{"GFG", "Geeks", "w3codebox"} //i와 j는 rvariable의 값을 저장합니다 //i는 단일 문자열의 인덱스 번호를 저장합니다 //j는 주어진 배열의 단일 문자열을 저장합니다 for i, j:= range rvariable { fmt.Println(i, j) } }
출력:
0 GFG 1 Geeks 2 w3codebox
5. 문자열에 대한 for 루프 사용: for 루프는 문자열의 Unicode 코드 포인트를 순회할 수 있습니다.
문법:
for index, chr:= range str{ // 문장.. }
여기서, 인덱스는 UTF-8코드 포인트의 첫 번째 바이트를 저장하는 변수이며,chr은은 주어진 문자열의 문자를 저장하는 변수이며,str문자열입니다.
package main import "fmt" func main() { // 문자열은 for 루프의 범위로 사용됩니다. for i, j := range "XabCd" { fmt.Printf("%U의 인덱스 값은 %d\n", j, i) } }
출력:
U+0058 의 인덱스 값은 0 U+0061 의 인덱스 값은 1 U+0062 의 인덱스 값은 2 U+0043 의 인덱스 값은 3 U+0064 의 인덱스 값은 4
6. map에 대한 for 루프 사용: for 루프는 순회할 수 있습니다.map의 키와 값 쌍.
문법:
for key, value := range map { // 문장.. }
package main import "fmt" func main() { mmap := map[int]string{ 22: "Geeks" 33: "GFG" 44: "w3codebox", } for key, value := range mmap { fmt.Println(key, value) } }
출력:
22 Geeks 33 GFG 44 w3codebox
7. For 채널: for 루프는 닫힌 때까지 채널에 전송된 순서 값을 순회할 수 있습니다.
문법:
for item := range Chnl { // 문장.. }
package main import "fmt" func main() { // 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 문이 있는 행과 동일해야 합니다.
배열, 문자열, 슬라이스, 또는 map 집합이 비어 있으면 for 루프는 오류를 투척하지 않고 프로세스를 계속합니다. 다시 말해, 배열, 문자열, 슬라이스, 또는 map이 nil이면 for 루프의 반복 횟수는 0입니다.