Оператор switch
Часть раздела Основы путешествия по C# на Coddy. Урок 27 из 70.
Оператор 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# никогда не позволяет выполнению «проваливаться» из одного блока case в следующий. Общий код используют только пустые метки case, расположенные одна над другой, как показано ниже.
- Ветка
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;
}Задание
НовичокСоздай программу, которая принимает номер месяца (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);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксные инкремент и декрементСокращённая запись арифметических операций7Основы ввода-вывода
Базовый выводИнтерполяция строкЧтение вводаРазборПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Операторы сравненияЛогические операторы, часть 1Логические операторы, часть 2Повторение — простая логикаЛогические операторы, часть 33Переменные. Часть 2
VarКонстантыСоглашения об именованииПовторение: инициализация переменныхПреобразование типов6Принятие решений
Оператор ifif-elseОператор switchТернарный операторПовторение: if-elseВложенный if-elseПотренируйтесь самостоятельно: Онлайн-компилятор C#