Uma estrutura de laço executa uma determinada ação até que um certo requisito deixe de ser verdadeiro e passe a ser false(falso).
Em Go (golang) existe somente a estrutura de laços for.
For completo
O laço completo é aquele no qual tem todos os três parâmetros do mesmo (inicializador, expressão_condicional, pos_execucao).
Sintaxe básica:
for inicializador; expressao_condicional; pos_execucao{
//corpo do laço
}
Onde:
- inicializador - Ação incial na primeira integração do for
- expressao_condicional - Expressão a ser verificada sempre que há a integração no laço, caso o resultado da mesma seja false o laço é terminado.
- pos_execucao - ação a se executada toda vez que o laço for integrado
- corpo do laço - Ações que serão executadas dentro do laço.
Observações
Vale lembrar que a variável criada no inicializador existe somente dentro do laço for. Ao contrário de outras linguagens é obrigatório a utilização das chaves { } para delimitar o corpo do laço.
Exemplo:
package main
import "fmt"
func main() {
mult := 2
for i := 0; i < 10; i++ {
fmt.Printf("\n%d * %d = %d",i,mult,mult*i)
}
}
Saída da execução do programa:
For sem inicializador
O laço sem inicializador é aquele no qual tem dois dos três parâmetros do mesmo (expressão_condicional, pos_execucao).
Sintaxe básica:
for ; expressao_condicional; pos_execucao{
//corpo do laço
}
Onde:
- expressao_condicional - Expressão a ser verificada sempre que há a integração no laço, caso o resultado da mesma seja false o laço é terminado.
- pos_execucao - ação a se executada toda vez que o laço for integrado
- corpo do laço - Ações que serão executadas dentro do laço.
Exemplo:
No exemplo abaixo foi removido a variavel i do inicializador.package main
import "fmt"
func main() {
mult := 2
i:=0
for ; i < 10; i++ {
fmt.Printf("\n%d * %d = %d",i,mult,mult*i)
}
}
For continuo
O laço no qual há apenas o parametro de expressao_condicional.
Sintaxe básica:
for ; expressao_condicional; {
//corpo do laço
}
Onde:
- expressao_condicional - Expressão a ser verificada sempre que há a integração no laço, caso o resultado da mesma seja false o laço é terminado.
- corpo do laço - Ações que serão executadas dentro do laço.
Exemplo:
No exemplo abaixo foi removido a variável i do inicializador e também o do pos_execução.package main
import "fmt"
func main() {
mult := 2
i:=0
for ; i < 10; {
fmt.Printf("\n%d * %d = %d",i,mult,mult*i)
i+=1
}
}
Usando for como while
Assim como for continuo o for como while tem somente o bloco de condicional
Sintaxe básica:
for ; expressao_condicional; {
//corpo do laço
}
Onde:
- expressao_condicional - Expressão a ser verificada sempre que há a integração no laço, caso o resultado da mesma seja false o laço é terminado.
- corpo do laço - Ações que serão executadas dentro do laço.
Exemplo:
No exemplo abaixo foi removido a variável i do inicializador e também o do pos_execução.package main
import "fmt"
func main() {
mult := 2
i:=0
for i < 10 {
fmt.Printf("\n%d * %d = %d",i,mult,mult*i)
i+=1
}
}
For infinito
É aquele for que não nenhum de seus blocos.
Sintaxe básica:
for {
//corpo do laço
}