Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Comando for
  2. Comando for como while
  3. Comando for como foreach
  4. Comando de parada break
  5. Comando de salto continue
  6. Loop infinito
  7. Comandos aninhados
  8. fluxograma break e continue

Para executarmos um bloco de código em nosso programas várias vezes, utilizamos o comando de repetição for disponibilizado pela linguagem Go. Esse comando possui sintaxe flexível que como ser utilizada como os comandos while e foreach.

Os comandos de repetição bem como o seus funcionamentos já foram discutidos em Portugal: Comandos de Repetição sendo a leitura recomendada.

Quando temos conhecimento de quantas vezes queremos executar um trecho de código, utilizamos o comando for como pode ser visto na sintaxe abaixo:

Fig. 1: Fluxograma comando for
Sintaxe
for inicializacao ; condicao ; <atualizacao>
{
  //seu codigo aqui
}
Onde
inicializacao: bloco para iniciar variável.
condicao: condição para que a repetição seja executada.
<atualizacao>: atualização de variável utilizada em inicialização.

Assim como o comando if o uso de () no comando for é opcional.

Exemplo 1
package main
import "fmt"

func main() {
	var valor uint8
	for valor = 0; valor < 3 ; valor++ {
	       fmt.Printf("for declarado como for\n")
	}
}
Saída
for declarado como for
for declarado como for
for declarado como for

A condicao vista anteriormente podem conter mais uma condição utilizando os operadores relacionais e lógicos vistos em Operadores.

Exemplo 2
package main
import "fmt"

func main() {
	var i, j uint8
	for i = 0; i < 3 || j < 3; i++ {
		fmt.Printf("for declarado como for\n")
		j++
	}
}
Saída
for declarado como for
for declarado como for
for declarado como for

A linguagem Go suporta a declaração de variável dentro do bloco inicialização como mostrado no exemplo abaixo:

Exemplo 3
package main
import "fmt"

func main() {
	var j uint8
	for i := 0; i < 3 || j < 3; i++ {
		fmt.Printf("for declarado como for\n")
		j++
	}
}
Saída
for declarado como for
for declarado como for
for declarado como for

A linguagem Go não possui o comando while. Para utilizarmos esse comando, utilizamos o comando for removendo os trechos inicialização e atualização como pode ser visto na sintaxe abaixo:

Fig. 3: Fluxograma for como while
Sintaxe
for condicao {
    //seu trecho de código aqui
}
Onde
condicao: condição para que a repetição seja executada.
Exemplo 4
package main
import "fmt"

func main() {
	valor := 0
	for valor < 3 {
		valor++
		fmt.Printf("for declarado como while\n")
	}
}
Saída
for declarado como while
for declarado como while
for declarado como while

A linguagem Go não possui o comando foreach como em linguagens como C++, Java e Outros. Porém, o comando for pode ser utilizado em conjunto do comando range para agir como foreach:

O comando foreach executa um bloco de código para todos os elementos de uma coleção realizando internamente as condições e atualizações para a execução de todos os laços necessários.

Fig. 3: Fluxograma for como foreach
Sintaxe
for indice, elemento := range colecao { /*bloco de código*/ }

for indice := range colecao { /*bloco de código*/ }

for _, elemento := range colecao { /*bloco de código*/ }
Onde
indice: índice do elemento iterado
elemento: elemento iterado
colecao: vetor, slice e semelhantes
_: Identificador blank utilizado para descartar valor retornado

O identificador blank será melhor visto em Funções não sendo necessário conhecer seu uso no momento.

Exemplo 5
package main
import "fmt"

func main() {

	vetor := [3]string{"um", "dois", "tres"}

	for _, el := range vetor {
		fmt.Println(el)
	}
}
Saída
um
dois
tres

A linguagem de programação Go fornece os comandos de parada break e e salto continue. Nesta parte do tutorial vamos aprender esses comandos.

Para parar a execução de um comando de repetição como for, por exemplo, utilizamos o comando break:

Sintaxe
break[;]

Quando a linha de código contendo break é executada, o fluxo de execução do comando de repetição é interrompido e o fluxo de execução continua após o fim do comando.

Exemplo 6
package main

import "fmt"

func main() {
	valor := 0
	for valor < 5 {
		if valor == 2 {
			break
		}
		fmt.Printf("%d\n",valor)
		valor++
	}
}
Saída
0
1

O comando break pode ser utilizado dentro dos comandos de loop como for ou switch.

Para pularmos a execução de apenas um laço/loop do comando de repetição for, por exemplo, utilizamos o comando continue:

Sintaxe
continue[;]

Quando a linha de código contendo continue é executada, o fluxo de execução do laço atual é parada. Então o fluxo de execução é desviado para o início do próximo laço ou loop.

Exemplo 7
package main
import "fmt"

func main() {
	valor := 0
	for valor < 5 {
		if valor == 2 {
			valor++
			continue
		} else {
			fmt.Printf("%d\n", valor)
		}
		valor++
	}
}
Saída
0
1
3
4

O comando continue só pode ser usado dentro do comando de repetição for em seus diferentes usos como while e foreach.

Caso seja necessário utilizar loops infinitos em nossas aplicaçoes, podemos declará-los utilizando o comando de repetição for como na sintaxe abaixo:

Sintaxe
for{
//código
}
Exemplo 8
package main

import (
	"fmt"
)

func main() {

	cont := 0
	fmt.Println("inicio_loop")

	for {
		//código omitido

		//sair do loop
		if cont >= 5 {
			break
		}
		fmt.Printf("loop %02d\n", cont+1)
		cont++
	}
	fmt.Println("fim_loop")
}
Saída
inicio_loop
loop 01
loop 02
loop 03
loop 04
loop 05
fim_loop

O exemplo acima, utilizando os comandos for e break, pode ser reescrito substituindo esses comandos pelo comando goto para simular os desvios incondicionais do loop:

Sintaxe: label
nome_local:
//declarações
Sintaxe: goto
goto nome_local
Exemplo 9
package main

import (
	"fmt"
)
func main() {

	cont := 0
	fmt.Println("inicio_loop")
inicio_loop:			//for 
	//código omitido
	//sair do loop
	if cont >= 5 {
		goto fim_loop //break
	}
	fmt.Printf("loop %02d\n", cont+1)
	cont++
	goto inicio_loop         //for

fim_loop:
	fmt.Println("fim_loop")
}
Saída
inicio_loop
loop 01
loop 02
loop 03
loop 04
loop 05
fim_loop
  1. 30/10/2025 - revisão 4 - Adição: loop infinito usando for e goto
  2. 08/09/2025 - revisão 3 - Ajustes: pontuais, objetivos e sintaxes
  3. 16/09/2024 - revisão 2 - Correção em link Portugol; ajustes gramaticais
  4. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais, remoção de texto lixo e adição de fluxogramas
  5. 21/08/2023 - versão inicial