Menu
CoddyTech

Оператор switch

Часть раздела Основы путешествия по C# на Coddy. Урок 27 из 69.

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

Вот базовая структура оператора switch:

switch (variable) {
    case value1:
        // Код, выполняемый, если variable равно value1
        break;
    case value2:
        // Код, выполняемый, если variable равно value2
        break;
    // ... другие варианты
    default:
        // Код, выполняемый, если ни один вариант не подошёл
        break;
}
  • За ключевым словом switch в скобках указывается переменная, которую нужно проверить.
  • Каждый case представляет возможное значение переменной.
  • Код внутри каждого case выполняется, если значение переменной совпадает со значением этого варианта.
  • Каждый непустой case должен заканчиваться на break (или return), который завершает выполнение switch. Если его пропустить, возникнет ошибка компиляции: в отличие от C или Java, C# никогда не позволяет выполнению «проваливаться» из одного варианта в следующий. Общий код используют только пустые метки вариантов, расположенные одна над другой, как показано ниже.
  • Ветвь default необязательна и выполняется, если не подходит ни одна другая ветвь.

Вот пример:

int day = 3;
string dayName;
switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    // ... варианты для других дней
    default:
        dayName = "Invalid day";
        break;
}

Вы также можете объединить несколько вариантов в один:

int day = 3;
string dayName;
switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    // ... варианты для других дней
    default:
        dayName = "Invalid day";
        break;
}
challenge icon

Задание

Новичок

Создай программу, которая принимает номер месяца (1 для января, 2 для февраля и т. д.) и выводит сезон, к которому он относится. Для логики используй оператор switch.

Времена года и соответствующие им месяцы:

  • Winter: декабрь (12), январь (1), февраль (2)
  • Spring: март (3), апрель (4), май (5)
  • Summer: июнь (6), июль (7), август (8)
  • Autumn: сентябрь (9), октябрь (10), ноябрь (11)

Выведи название времени года точно так, как оно написано выше, на английском.

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

using System;

public class Program {
    public static void Main(string[] args) {
        int month = int.Parse(Console.ReadLine());
        string season = "";
        
        // Напишите свой код ниже
        
        
        Console.WriteLine(season);
    }
}
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор C#