A Palavra-chave `fallthrough`
Parte da seção Fundamentos do Journey de GO da Coddy — lição 42 de 109.
Em Go, a palavra-chave fallthrough nos permite continuar a execução para o próximo caso em uma instrução switch, mesmo após uma correspondência ser encontrada. Vamos explorar como isso funciona.
Primeiro, vamos criar uma instrução switch simples que usa a palavra-chave fallthrough para descrever um número:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}Após executar este código, veremos todas as três mensagens impressas na tela:
Less than 20 Greater than 10 Positive numberIsso acontece porque o primeiro caso corresponde (15 é menor que 20), e a palavra-chave fallthrough força o Go a também executar o segundo caso. Então o segundo caso também usa fallthrough, o que faz o Go executar o terceiro caso também. Sem o fallthrough, apenas o primeiro caso correspondente seria executado.
Lembre-se de que fallthrough executará o próximo caso, independentemente de sua condição ser verdadeira ou não. Em nosso exemplo, todas as condições por acaso são verdadeiras para o número 15, mas o próximo caso seria executado mesmo se sua condição fosse falsa.
Desafio
InicianteNeste desafio, você praticará o uso da palavra-chave fallthrough em uma instrução switch. A palavra-chave fallthrough permite que a execução continue para o próximo caso, mesmo após uma correspondência ser encontrada.
Você tem uma variável que representa um dia da semana. Sua tarefa é adicionar a palavra-chave fallthrough no local apropriado para fazer o programa imprimir tanto 'It's a weekday!' quanto 'Time to work!' quando o dia for 'Monday'.
Folha de consulta
A palavra-chave fallthrough permite que a execução continue para o próximo caso em uma instrução switch, mesmo após uma correspondência ser encontrada:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}Isso resultará na saída: Less than 20 Greater than 10 Positive number
O fallthrough executa o próximo caso, independentemente de sua condição ser verdadeira ou falsa.
Experimente você mesmo
package main
import "fmt"
func main() {
// Uma variável que representa um dia da semana
day := "Monday"
// Instrução switch para verificar o dia
switch day {
case "Monday":
fmt.Println("It's a weekday!")
// TODO: Adicione a palavra-chave `fallthrough` aqui para continuar para o próximo case
case "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("Time to work!")
case "Saturday", "Sunday":
fmt.Println("It's the weekend!")
default:
fmt.Println("Invalid day!")
}
}
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