Оператор switch
Оператор switch
Другой простой конструкцией выбора, предлагаемой в C#, является оператор switch. Как и в других языках типа C, оператор switch позволяет обработать поток выполнения программы на основе заданного набора вариантов. Например, следующий метод Main() позволяет печатать строку, зависящую от выбранного варианта (случай default предназначен для обработки непредусмотренных вариантов выбора).
// Переключение по числовому значению.
static void Main(string[] args) {
Console.WriteLine("1 [C#], 2 [VB]");
Console.Write("Выберите язык, который вы предпочитаете: ");
string langChoice = Console.ReadLine();
int n = int.Parse(langChoice);
switch (n) {
case 1:
Console.WriteLine("Отлично! C# – это прекрасный язык.");
break;
case 2:
Console.WriteLine("VB .NET: ООП, многозадачность и т.д.!");
break;
default:
Console.WriteLine("Хорошо… удачи вам с таким выбором!");
break;
}
}
Замечание. В C# требуется, чтобы каждый вариант выбора (включая default), содержащий выполняемые операторы, завершался оператором break или goto, во избежание прохода сквозь структуру при невыполнении условия.
Приятной особенностью оператора switch в C# является то, что в рамках этого оператора вы можете оценивать не только числовые, но и строковые данные. Именно это используется в следующем операторе switch (при таком подходе нет необходимости переводить пользовательские данные в числовые значения).
static void Main(string[] args) {
Console.WriteLine("C# или VB");
Console.Write("Выберите язык, который вы предпочитаете: ");
string langChoice = Console.ReadLine();
switch (langChoice) {
case "C#":
Console.WriteLine("Отлично! C# – это прекрасный язык. ");
break;
case "VB":
Console.WriteLine("VB .NET: ООП, многозадачность и т.д.!");
break;
default:
Console.WriteLine("Хорошо… удачи вам с таким выбором!");
break;
}
}
Исходный код. Проект IterationsAndDeсisions размещен в подкаталоге, соответствующем главе 3.