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

  1. Comando if
  2. Comando if-else
  3. Comando if-else-if
  4. Função como argumento
  5. Múltiplas condições
  6. Comandos aninhados

Em relação a comandos de decisão, a linguagem Go possui os seguintes comandos: if, if-else, if-else-if. Nesta parte do tutorial vamos estudar esses comandos.

Os comandos de decisão bem como os seus funcionamentos já foram discutidos em Portugol: Comandos de Decisão sendo a leitura recomendada.

Quando precisamos fazer uma validação ou teste para executar apenas um trecho de código em nossos programas em Go, utilizamos o comando if:

Fig. 1: Fluxograma comandos if
Sintaxe
if condicao {
 //condicao == true
}
Onde
condicao: condição ou expressão, simples ou composta, testada.

O uso de () é opcional caso o comando if contenha apenas uma expressão para validação. Por boa prática, é aconselhado o uso para facilitar a leitura ou evitar erros de precedência de operadores.

Exemplo 1
package main
import "fmt"

func main() {
	valor := false
	valor2 := 100

	if valor == false {
		fmt.Printf("valor == false\n")
	}
}
Saída
valor == false
valor2 == 100

A condição pode ser composta de um ou mais variáveis , expressões ou funções. Os operadores relacionais e lógicos são utilizados em conjunto na tomada de decisões, por exemplo.

Exemplo 2
package main
import "fmt"

func main() {
	valor := false
	valor2 := 100

	if valor == false || valor2 == 100 {
		fmt.Printf("valor2 == 100")
	}
}
Saída
valor2 == 100

No exemplo anterior, ao validar uma condição executamos um trecho de código quando uma condição é verdadeira. Caso seja necessário executar um trecho de código quanto uma condição seja falsa, utilizamos o comando if-else.

Fig. 2: Fluixograma comando if-else
Sintaxe
if condicao
{
  //condicao == true
}
else
{
  //condicao == false
}
Exemplo 3
package main
import "fmt"

func main() {
	valor := false
	valor2 := 100

	if valor == true {
	   fmt.Printf("true")
	}
	else{
	   fmt.Printf("false")	
	}
}
Saída
false

Quando é necessário realizar validações em cascata, podemos utilizar o comando if-else-if fornecido pela linguagem Go.

Fig. 3: Fluxograma comando if-elseif
Sintaxe
if condicao1
{
  //se condicao1 == true
}
else if condicao2
{
  //se condicao2 == true
}
else if condicao3
{
  //se condicao == true
}
else
{
 //condicao1, condicao2, condicao3 == false
}
Exemplo 4
package main
import "fmt"

func main() {
	var a int = 1

	if a == 1 {
		fmt.Printf("== 1")

	} else if a < 1 {
		fmt.Printf("< 1")

	} else {
		fmt.Printf("> 1")
	}
}
Saída
== 1

O comando if em Go, assim como em outras linguagens, permite que uma função seja utilizado como argumento para verificação, ou comparação, como mostrado no exemplo abaixo:

Exemplo 5
package main

import "fmt"

func funcao(p int) int {
	if p == 0 {
		return 0
	}

	if p == 1 {
		return 1
	}

	if p == 2 {
		return 2
	}

	return -1
}

func main() {
	i := 1
	if funcao(i) == 1 {
		fmt.Println("funcao como argumento")
	}

}
Saída
funcao como argumento

Em Go, como também em outras linguagens, o comando if aceita o uso de operadores para a declaração de múltiplas condições como mostrado no exemplo abaixo:

Exemplo 6
package main

import "fmt"

func main() {
	codigo := 1
	valor := 1.99
	flag := 'A'

	if valor == 1.99 && codigo == 1 || (flag >= 'A' && flag <= 'C') {
		fmt.Println("condição aceita!")
	}
}
Saída
condição aceita!
  1. 30/10/2025 - revisão 4 - Adição: 'função como argumento' e 'múltiplas condições'
  2. 08/09/2025 - revisão 3 - Ajustes: pontuais, objetivos e sintaxes
  3. 16/09/2024 - revisão 2 - Correção em links Portugol; ajustes gramaticais
  4. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais e adição de fluxogramas
  5. 21/08/2023 - versão inicial