0Pricing
Go Academy · Aula

break, continue e rótulos

Fluxo de controle de laços e breaks rotulados

break, continue e rótulos é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 4 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.

Fundamentos do controle de laços

Go fornece três palavras-chave para controlar a execução de laços:

  • break — sai do laço ou switch atual
  • continue — avança para a próxima iteração
  • goto — salta para uma instrução com rótulo (raramente usado)

Os rótulos fazem com que break e continue também funcionem com laços externos.

break em um laço

break sai imediatamente da instrução for, switch ou select mais interna:

for i := 0; i < 100; i++ {
    if i*i > 50 {
        break
    }
    fmt.Println(i)
}

continue

continue ignora o restante do corpo do laço atual e salta para a instrução pós-iteração (ou para a verificação da condição):

for i := 0; i < 10; i++ {
    if i%2 == 0 {
        continue // skip even numbers
    }
    fmt.Println(i) // prints 1,3,5,7,9
}

break com rótulo

Um rótulo antes de um laço for permite sair dele a partir de um laço interno:

search:
for i, row := range grid {
    for j, cell := range row {
        if cell == target {
            fmt.Printf("found at %d,%d\n", i, j)
            break search
        }
    }
}

continue com rótulo

Um continue com rótulo avança para a próxima iteração do laço externo identificado pelo rótulo:

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if j == 1 {
            continue outer
        }
        fmt.Printf("%d,%d\n", i, j)
    }
}

Quando usar rótulos

Os rótulos são apropriados quando:

  • É necessário sair de um laço aninhado a partir de uma parte profundamente interna
  • A extração de uma função seria detalhada demais

Rótulos são incomuns em Go — se você perceber que precisa deles com frequência, considere refatorar usando funções ou canais.

goto (raro)

Go tem goto para saltar para uma instrução com rótulo. Ele é permitido dentro da mesma função e não pode saltar sobre declarações de variáveis:

  • Casos de uso: código gerado e laços compactos de tratamento de erros
  • Evite em código escrito manualmente — prefira o controle de fluxo estruturado

break em select

Dentro de uma instrução select, break sai do select — não de um laço for externo. Use um break com rótulo para sair do laço externo:

loop:
for {
    select {
    case msg := <-ch:
        handle(msg)
    case <-done:
        break loop
    }
}

Evite aninhamentos profundos

Laços profundamente aninhados são difíceis de ler. Antes de adicionar um break com rótulo, pergunte:

  • Posso extrair o laço interno para uma função auxiliar?
  • Posso usar um canal ou uma fatia para simplificar a iteração?
  • Retornos antecipados podem reduzir o aninhamento no nível externo?

Padrão prático: pesquisa com break

Um padrão comum: pesquise uma coleção e saia com break quando encontrar o item:

func contains(slice []string, target string) bool {
    for _, v := range slice {
        if v == target {
            return true // prefer return over break+flag
        }
    }
    return false
}

Verificação rápida

Como sair de um laço externo a partir de dentro de um laço interno em Go?

Recapitulação: break, continue e rótulos

Controle o fluxo dos laços de forma eficaz em Go:

  • break sai do laço ou switch atual
  • continue avança para a próxima iteração
  • Os rótulos permitem que break/continue tenham como alvo um laço externo
  • goto existe, mas raramente é usado no Go idiomático
  • Dentro de select, use um break com rótulo para sair de um laço for externo

Próximo curso: funções e múltiplos valores de retorno.

Perguntas Frequentes

A aula “break, continue e rótulos” é grátis?

Sim — o texto completo de “break, continue e rótulos” é 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 “break, continue e rótulos”?

Fluxo de controle de laços e breaks rotulados 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 4 de 4.

Quanto tempo leva a aula “break, continue e rótulos”?

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

  1. Instruções if e expressões de inicialização
  2. O laço for: todos os padrões
  3. Instruções switch em Go
  4. break, continue e rótulos
← Voltar para Go Academy