Switch sem Expressão
Parte da seção Fundamentos do Journey de GO da Coddy — lição 41 de 109.
Em Go, podemos usar uma instrução switch sem uma expressão após a palavra-chave. Isso é útil quando queremos avaliar múltiplas condições de uma forma limpa.
Vamos criar um programa que categoriza uma pessoa com base em sua idade:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Após executar este código, o programa verificará cada condição de caso em ordem. Como nossa idade é 25, não é menor que 13 ou 20, mas é menor que 30, então o terceiro caso corresponde. O texto "Young Adult" aparecerá na tela:
Young AdultObserve que, sem uma expressão após switch, cada case se torna uma condição booleana que é avaliada como true ou false. O primeiro case que for avaliado como true executará seu bloco de código.
Se nenhum dos casos corresponder, o caso default seria executado. Em nosso exemplo, se age fosse 35, a saída seria "Adult".
Desafio
FácilNeste desafio, você praticará o uso de uma instrução switch sem uma expressão. Este tipo de switch é útil quando você deseja avaliar múltiplas condições sem repetir instruções if-else.
Fornecemos uma variável timeOfDay que representa a hora atual (no formato de 24 horas). Sua tarefa é completar a instrução switch sem uma expressão para imprimir uma saudação apropriada com base na hora do dia.
Folha de consulta
Uma instrução switch sem uma expressão permite avaliar múltiplas condições de forma limpa:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Cada caso se torna uma condição booleana que avalia como verdadeira ou falsa. O primeiro caso que avalia como verdadeiro executa seu bloco de código. Se nenhum caso corresponder, o caso default é executado.
Experimente você mesmo
package main
import "fmt"
func main() {
// Isso representa a hora atual no formato de 24 horas (0-23)
timeOfDay := 14 // Isso é 14:00
// TODO: Complete a instrução switch sem uma expressão
// para imprimir a saudação apropriada com base na hora do dia
switch {
// Adicione seus casos aqui
default:
fmt.Println("Hello!")
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões