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

Шпаргалка

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

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

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

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

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Проверьте себя

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

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