English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do Golang

Sentenças de controle do Golang

Funções & métodos do Golang

Estruturas do Golang

fatias & arrays do Golang

Cadeias de caracteres (String) do Golang

Ponteiros do Golang

Interfaces do Golang

Concorrência do Golang

Exceções do Golang (Error)

Outros itens do Golang

Sentença de loop no Go (loop for)

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.