English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O loop for no Go é uma sentença de controle de repetição que nos permite escrever loops que executam um número específico de vezes. No Go, este loop for pode ser usado em diferentes formas, incluindo:
1. Loop for simplesNós usamos isso em outras linguagens de programação (por exemplo, C, C ++,Java,C#等)中使用的相似。
Sintaxe:
for initialization; condition; post{ // Sentenças.... }
Aqui,
emInicialização (initialization)Sentença inicial (initialization) é opcional e é executada antes do início do loop. A sentença inicial sempre está dentro de uma simples sentença, como declaração de variável, sentença de incrementação ou atribuição ou chamada de função.
A sentença de condição (condition) contém uma expressão booleana que é calculada no início de cada iteração do loop. Se o valor da sentença de condição for true, o loop é executado.
A sentença pós é executada após o corpo do loop for. Após a sentença pós, a condição é recalculada para verificar se seu valor é false, então o loop termina.
//Usando loop for package main import "fmt" //Função principal func main() { // Loop for //Este loop começa a ser executado quando i = 0, até i<4A condição é verdadeira //A sentença pós é i++ for i := 0; i < 4; i++{ fmt.Printf("w3codebox\n") } }
Saída:
w3codebox w3codebox w3codebox w3codebox
2. Usando loop for como loop infinito:Também pode usar o loop for como loop infinito removendo todos os três expressões, o loop for pode ser usado como loop infinito. Se o usuário não escrever uma sentença de condição no loop for, significa que a sentença de condição é true e o loop entra em loop infinito.
Sintaxe:
for{ // Sentenças... }
// Usando loop infinito package main import "fmt" func main() { // Loop infinito for { fmt.Printf("w3codebox\n") } }
Saída:
w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox ...........
3. Usando loop for como loop while: O loop for também pode ser usado como loop while. Execute este loop até que a condição fornecida seja verdadeira. Quando o valor da condição for false, o loop termina.
Sintaxe:
for condition{ //instrução.. }
//O loop for é o mesmo que o loop while package main import "fmt" func main() { //Loop while //O loop for executa até //i <3A condição é verdadeira i:= 0 for i < 3 { i += 2 } fmt.Println(i) }
Saída:
4
4. Faixa simples no loop for:Você também podeDentro do loop forUsando faixa.
Sintaxe:
for i, j := range rvariable{ // instrução.. }
Aqui,
i e j são variáveis de atribuição de valores de iteração. Elas também são chamadas de variáveis de iteração.
A segunda variável, ou j, é opcional.
A expressão de faixa é avaliada uma vez antes do início do loop.
package main import "fmt" func main() { //Aqui, rvariable é um array rvariable:= []string{"GFG", "Geeks", "w"}3codebox"} //codebox"} //i e j armazenam o valor de rvariable //i armazena o índice do somatório da string individual j armazena a string individual fornecida for i, j := range rvariable { } }
Saída:
fmt.Println(i, j) 1 Geeks 2 w3codebox
50 GFG Para a string usar loop for:
Sintaxe:
O loop for pode percorrer os pontos de código Unicode da string. // instrução.. }
for index, chr := range str{-8aqui, o índice é o armazenamento UTFchr é a variável que armazena o primeiro byte do código ponto codificado, enquantoé a variável que armazena os caracteres da string fornecida, enquantostré uma string.
package main import "fmt" func main() { // A string como alcance do loop for for i, j := range "XabCd" { fmt.Printf("%U o valor do índice é %d\n", j, i) } }
Saída:
U+0058 o valor do índice é 0 U+0061 o valor do índice é 1 U+0062 o valor do índice é 2 U+0043 o valor do índice é 3 U+0064 o valor do índice é 4
6Para usar loop for no map: O loop for pode percorrermappares de chave e valor.
Sintaxe:
for key, value := range map { // instrução.. }
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) } }
Saída:
22 Geeks 33 GFG 44 w3codebox
7Para o canal: O loop for pode percorrer os valores enviados na ordem pelo canal até que ele seja fechado.
Sintaxe:
for item := range Chnl { // instrução.. }
package main import "fmt" func main() { // Uso de canal chnl := make(chan int) go func() { chnl <- 100 chnl <- 1000 chnl <- 10000 chnl <- 100000 close(chnl) }() for i := range chnl { fmt.Println(i) } }
Saída:
100 1000 10000 100000
Ponto importante:
Não é necessário usar parênteses nos três comandos do loop for.
Os colchetes são obrigatórios no loop for.
O colchete esquerdo deve estar na mesma linha que a instrução post.
Se o array, string, slice ou conjunto map estiver vazio, o loop for não lançará erro e continuará seu fluxo. Em outras palavras, se o array, string, slice ou map for nil, o número de iterações do loop for será zero.