Menu
Coddy logo textTech

Ключевое слово `fallthrough`

Часть раздела Основы путешествия по GO на Coddy — урок 42 из 109.

В Go ключевое слово fallthrough позволяет нам продолжить выполнение следующего кейса в операторе switch, даже после того, как совпадение было найдено. Давайте изучим, как это работает.

Сначала давайте создадим простой оператор switch, который использует ключевое слово fallthrough для описания числа:

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")
}

После выполнения этого кода мы увидим все три сообщения, выведенные на экран:

Less than 20 Greater than 10 Positive number

Это происходит потому, что первый вариант совпадает (15 меньше, чем 20), и ключевое слово fallthrough заставляет Go также выполнить второй вариант. Затем второй вариант также использует fallthrough, что заставляет Go выполнить и третий вариант. Без fallthrough выполнился бы только первый подходящий вариант.

Помните, что fallthrough выполнит следующий блок case независимо от того, истинно его условие или нет. В нашем примере все условия оказываются истинными для числа 15, но следующий блок case выполнился бы, даже если бы его условие было ложным.

challenge icon

Задание

Новичок

В этом испытании вы попрактикуетесь в использовании ключевого слова fallthrough в операторе switch. Ключевое слово fallthrough позволяет продолжить выполнение следующего блока case даже после того, как совпадение было найдено.

У вас есть переменная, представляющая день недели. Ваша задача — добавить ключевое слово fallthrough в подходящее место, чтобы программа вывела и 'It's a weekday!', и 'Time to work!', когда значением переменной является 'Monday'.

Попробуйте сами

package main

import "fmt"

func main() {
	// Переменная, представляющая день недели
	day := "Monday"
	
	// Оператор switch для проверки дня
	switch day {
	case "Monday":
		fmt.Println("It's a weekday!")
		// TODO: Добавьте ключевое слово `fallthrough` здесь, чтобы перейти к следующему 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!")
	}
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы