O laço for: todos os padrões
Laços clássicos, no estilo while, infinitos e com range
O laço for: todos os padrões é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
Go tem apenas um laço
Go tem apenas o laço for — não há while nem do-while. A palavra-chave for abrange todos os padrões de iteração por meio de diferentes formas.
Laço for no estilo clássico de C
O laço tradicional com três cláusulas:
for i := 0; i < 5; i++ {
fmt.Println(i)
}Laço no estilo while
Omita as cláusulas de inicialização e pós-iteração para obter um laço semelhante a while:
n := 1
for n < 100 {
n *= 2
}Laço infinito
Omita todas as cláusulas para criar um laço infinito (é preciso usar break ou return para sair):
for {
msg := receive()
if msg == "quit" {
break
}
process(msg)
}range sobre uma fatia
range percorre uma fatia, retornando o índice e o valor:
fruits := []string{"apple", "banana", "cherry"}
for i, fruit := range fruits {
fmt.Printf("%d: %s\n", i, fruit)
}range sobre um mapa
range sobre um mapa retorna pares de chave e valor (a ordem da iteração é aleatória):
scores := map[string]int{"Alice": 90, "Bob": 85}
for name, score := range scores {
fmt.Printf("%s: %d\n", name, score)
}range sobre uma cadeia de caracteres
Percorrer uma cadeia de caracteres com range fornece valores rune (pontos de código Unicode), não bytes:
for i, r := range "Go!" {
fmt.Printf("index %d: %c\n", i, r)
}range sobre um canal
Percorrer um canal com range lê valores até que o canal seja fechado:
ch := make(chan int, 3)
ch <- 1; ch <- 2; ch <- 3
close(ch)
for v := range ch {
fmt.Println(v)
}break e continue
break sai do laço mais interno; continue avança diretamente para a próxima iteração:
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // skip even numbers
}
if i > 7 {
break // stop at 7
}
fmt.Println(i)
}break com rótulo
Os rótulos permitem sair de um laço externo a partir de dentro de um laço interno:
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i+j == 3 {
break outer
}
}
}Verificação rápida
Como escrever um laço infinito em Go?
Recapitulação: o laço for
O laço for do Go abrange todos os padrões de iteração:
- Clássico:
for i := 0; i < n; i++ - Estilo while:
for condition - Infinito:
for {} - Range: sobre fatias, mapas, cadeias de caracteres e canais
break/continuecom rótulos opcionais para laços aninhados
Próximo: instruções switch em Go.
Perguntas Frequentes
A aula “O laço for: todos os padrões” é grátis?
Sim — o texto completo de “O laço for: todos os padrões” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “O laço for: todos os padrões”?
Laços clássicos, no estilo while, infinitos e com range Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “O laço for: todos os padrões”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Instruções if e expressões de inicialização
- O laço for: todos os padrões
- Instruções switch em Go
- break, continue e rótulos