Menu
Coddy logo textTech

Switch без выражений

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

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

Давайте создадим программу, которая классифицирует человека в зависимости от его возраста:

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

После выполнения этого кода программа по порядку проверит каждое условие case. Так как наш возраст равен 25, он не меньше 13 или 20, но меньше 30, поэтому срабатывает третье условие. На экране появится текст "Young Adult":

Young Adult

Обратите внимание, что без выражения после switch, каждый case становится логическим условием, которое вычисляется либо как true, либо как false. Первый case, который вычислится как true, выполнит свой блок кода.

Если ни один из вариантов не совпадает, выполнится блок default. В нашем примере, если age равен 35, результатом будет "Adult".

challenge icon

Задание

Легко

В этом испытании вы попрактикуетесь в использовании оператора switch без выражения. Этот тип switch полезен, когда вы хотите оценить несколько условий, не повторяя операторы if-else.

Мы предоставили переменную timeOfDay, которая представляет текущий час (в 24-часовом формате). Ваша задача — дополнить оператор switch без выражения, чтобы вывести соответствующее приветствие в зависимости от времени суток.

Шпаргалка

Оператор switch без выражения позволяет элегантно проверять несколько условий:

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

Каждый блок case становится логическим условием, которое принимает значение true или false. Выполняется блок кода первого условия, которое окажется истинным (true). Если ни одно условие не подошло, выполняется блок default.

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

package main

import "fmt"

func main() {
	// Это представляет текущий час в 24-часовом формате (0-23)
	timeOfDay := 14 // Это 14:00
	
	// TODO: Завершите оператор switch без выражения,
	// чтобы вывести соответствующее приветствие в зависимости от времени суток
	switch {
	// Добавьте ваши варианты здесь
	
	
	
	default:
		fmt.Println("Hello!")
	}
}
quiz iconПроверьте себя

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

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