Da trilha de Go Este conceito ainda não saiu como card do dia. ir para o card de hoje

Go Controle de fluxo Básico

if, for e switch

Em Go, o controle de fluxo é feito com if, for e switch. O if pode ter uma instrução de inicialização antes da condição, o for é o único laço de repetição e o switch não precisa de break para evitar a queda nos casos seguintes. Essas construções tornam o código mais limpo e expressivo.

O if com init permite declarar variáveis temporárias visíveis apenas dentro do bloco condicional, útil para evitar poluição de escopo. O for pode ser usado de várias formas: como laço infinito, como while e como iteração com range sobre slices, maps, strings, etc. O switch é flexível: pode ser sem expressão, com múltiplos valores por caso e sem break automático.

Dominar essas estruturas é essencial para escrever algoritmos claros e idiomáticos em Go. A ausência de break no switch evita erros comuns de outras linguagens e o range simplifica a iteração sobre coleções.

Pontos-chave

  • if pode ter uma instrução de inicialização antes da condição: if x := f(); x > 0 { ... }.
  • for é o único laço em Go; pode ser usado como while ou laço infinito.
  • range itera sobre slices, arrays, maps, strings e canais, retornando índice e valor.
  • switch não precisa de break; cada caso é exclusivo por padrão.
  • switch sem expressão é equivalente a switch true e permite condições em cada caso.
fluxo_controle.go
package main

import "fmt"

func main() {
	// if com init: variável 'x' visível apenas no bloco if/else
	if x := 10; x > 5 {
		fmt.Println("x é maior que 5")
	} else {
		fmt.Println("x é menor ou igual a 5")
	}

	// for como while
	i := 0
	for i < 3 {
		fmt.Println("i =", i)
		i++
	}

	// for com range sobre slice
	frutas := []string{"maçã", "banana", "laranja"}
	for indice, fruta := range frutas {
		fmt.Printf("%d: %s\n", indice, fruta)
	}

	// switch sem break
	nota := 8
	switch {
	case nota >= 9:
		fmt.Println("Excelente")
	case nota >= 7:
		fmt.Println("Bom")
	default:
		fmt.Println("Precisa melhorar")
	}
}

Exercícios

  1. 1
    Fácil

    Classificação de números

    Escreva um programa que classifique um número inteiro n como "positivo", "negativo" ou "zero" usando if com init. O número deve ser declarado dentro do if.

    Resolver
  2. 2
    Médio

    Soma com range

    Dado um slice de inteiros, use for com range para calcular e imprimir a soma de todos os elementos.

    Resolver
  3. 3
    Desafio

    Dia da semana com switch

    Escreva um programa que receba um número de 1 a 7 e imprima o dia da semana correspondente usando switch sem break. Para números fora desse intervalo, imprima "Dia inválido".

    Resolver

Continue estudando