TOC

This article has been localized into Russian by the community.

Управляющие структуры:

Оператор switch

Оператор switch подобен оператору set из выражения if. Это список возможных действий для конкретного случая и необязательным действием по умолчанию в случае, если не выпадет вариант true. Простой оператор switch выглядит так:

int number = 1;
switch(number)
{
    case 0:
Console.WriteLine("The number is zero!");
break;
    case 1:
Console.WriteLine("The number is one!");
break;
}

Идентификатор для проверки помещается после ключевого слова switch, а затем есть список операторов case, где мы проверяем идентификатор по заданному значению. Заметьте, что в конце каждого случая у нас есть оператор прерывания. C# просто требует, чтобы мы покинули блок до его завершения. Если вы пишете функцию, вы можете использовать оператор return вместо оператора break.

В данном случае используется integer, но вы также можете применять и string или любой другой тип. Можно задать одно и то же действие для нескольких случаев. Мы так сделаем это в следующем примере, где мы возьмем часть пользовательского ввода и используем его в нашем операторе switch:

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
}

В этом примере мы задаем пользователю вопрос и предлагаем выбрать "да", " нет " или "возможно". Затем мы считываем пользовательский ответ и создаем для него оператор switch. Чтобы помочь пользователю, преобразуем входные данные в Нижний регистр, а затем сверяем его ответ со нашими строкам в нижнем регистре, поэтому нет различия между строчными и ПРОПИСНЫМИ буквами.

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

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
    default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}

Если ни одна из инструкций case не была оценена как true, то будет выполнена инструкция default, если таковая имеется. Это необязательно, как мы видели в предыдущих примерах.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!