Desafio Go

Dia da semana com switch

Enunciado

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".

Requisitos

  • Usar switch sem break.
  • Mapear 1 a 7 para os dias da semana.
  • Tratar valores inválidos com default.

Código inicial

package main

import "fmt"

func main() {
	dia := 3
	// use switch para imprimir o dia
}

Saída esperada

Quarta-feira
Ver dica

Você pode agrupar múltiplos valores em um caso: case 1, 7:.

Mostrar solução
package main

import "fmt"

func main() {
	dia := 3
	switch dia {
	case 1:
		fmt.Println("Domingo")
	case 2:
		fmt.Println("Segunda-feira")
	case 3:
		fmt.Println("Terça-feira")
	case 4:
		fmt.Println("Quarta-feira")
	case 5:
		fmt.Println("Quinta-feira")
	case 6:
		fmt.Println("Sexta-feira")
	case 7:
		fmt.Println("Sábado")
	default:
		fmt.Println("Dia inválido")
	}
}

Passo a passo

  1. A variável dia é declarada com valor 3.
  2. O switch dia avalia o valor e compara com cada case.
  3. Como dia é 3, o caso case 3 é executado, imprimindo "Terça-feira".
  4. O break é implícito: após executar um caso, o switch termina.
  5. O default cobre valores fora de 1 a 7.

Por que funciona

O switch em Go não requer break; cada caso é exclusivo. A cláusula default é executada quando nenhum caso corresponde. Isso simplifica o código e evita erros de fallthrough acidental.

Erros comuns

  • Esquecer o default: valores inválidos não imprimem nada.
  • Tentar usar break desnecessariamente: não causa erro, mas é redundante.
  • Usar fallthrough sem querer: ele força a execução do próximo caso, o que raramente é desejado.

Outra forma de resolver

Usar um slice de strings:

dias := []string{"Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"}
if dia >= 1 && dia <= 7 {
    fmt.Println(dias[dia-1])
} else {
    fmt.Println("Dia inválido")
}

Preferível para muitas opções, mas o switch é mais legível para poucos casos.

Saída esperada

Quarta-feira