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

  1. Entender o comando switch
  2. Switch com struct e outros tipos

Outra forma de tomar decisões em programas escritos em Go, é a utilização do comando switch que nos permite testar vários casos e executar um bloco de código quando uma condição para um caso é verdadeira. Nesta parte do tutorial vamos ver o comando switch.

Os comandos de escolha bem como o seus funcionamentos já foram discutidos em Portugal: Comando de Escolha sendo a leitura recomendada.

Para fazermos escolhas da linguagem de programação Go, utilizamos o comando switch que possui sua sintaxe apresentada abaixo.

Fig. 1: Comando switch
Sintaxe
switch valor {
    case caso1:
        //seu trecho de código aqui
        //break opcional
    case caso2: 
        //seu trecho de código aqui
        //break opcional
    case casoN:
    default: //opcional
}
Onde
valor: argumento que desejamos verificar se existe algum caso associado. 
Podem conter valores numérico, texto. 

caso1..casoN: são os casos que desejamos comparar com o valor. Se o resultado for verdadeiro, o trecho de 
código dentro do caso é executado.

Diferente de outras linguagens como C/C++, Java e C# e outros, em Go o comando break é opcional para interromper a execução de um case do comando switch. Para ver como funciona o comando break visite Comando Break.

O caso default é opcional. Com esse caso, podemos executar algum trecho de código caso o valor não seja igual a algum dos valores da cláusula case.

Exemplo 1
package main
import "fmt"

func main() {
	valor := 3
	switch valor {
	    case 1:
		    fmt.Println("1")
	    case 2:
		    fmt.Println("2")
	    case 3:
		    fmt.Println("3")
	    default:
		    fmt.Println("não encontrado")
	}
}
Saída
3

Como mencionado na sintaxe acima, a linguagem Go, permite o uso do comando switch com strings e outros tipos de dados.

Exemplo 2
package main
import "fmt"

func main() {
	valor := "tres"
	switch valor {
	case "um":
		fmt.Println("1")
	case "dois":
		fmt.Println("2")
	case "tres":
		fmt.Println("3")
	default:
		fmt.Println("não encontrado")
	}
}
Saída
3

Para a execução de um mesmo trecho de código para mais de uma case, basta adicionar as cláusulas case em sequência ou um abaixo do outro separados por (:).

Exemplo 3
package main
import "fmt"

func main() {
	valor := "tres"
	switch valor {
	    case "um":
	    case "dois":
		    fmt.Println("2")
	    case "tres":
		    fmt.Println("3")
	    default:
		    fmt.Println("não encontrado")
	}
}
Saída
2
  1. 16/09/2024 - revisão 2 - Correção em link Portugol; ajustes gramaticais
  2. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais e adição de fluxogramas
  3. 21/08/2023 - versão inicial