Оператор switch
Вторым оператором выбора в C# является оператор switch, который обеспечивает многонаправленное ветвление программы. Следовательно, этот оператор позволяет сделать выбор среди нескольких альтернативных вариантов дальнейшего выполнения программы. Несмотря на то что многонаправленная проверка может быть организована с помощью последовательного ряда вложенных операторов if, во многих случаях более эффективным оказывается применение оператора switch. Этот оператор действует следующим образом. Значение выражения последовательно сравнивается с константами выбора из заданного списка. Как только будет обнаружено совпадение с одним из условий выбора, выполняется последовательность операторов, связанных с этим условием. Ниже приведена общая форма оператора switch.
switch (выражение) { case константа1:
последовательность операторов break; case константа2:
последовательность операторов break; case константаЗ:
последовательность операторов break;
default:
последовательность операторов break;
}
Заданное выражение в операторе switch должно быть целочисленного типа (char, byte, short или int), перечислимого или же строкового. (О перечислениях и символьных строках типа string речь пойдет далее в этой книге.) А выражения других типов, например с плавающей точкой, в операторе switch не допускаются. Зачастую выражение, управляющее оператором switch, просто сводится к одной переменной. Кроме того, константы выбора должны иметь тип, совместимый с типом выражения. В одном операторе switch не допускается наличие двух одинаковых по значению констант выбора.
Последовательность операторов из ветви default выполняется в том случае, если ни одна из констант выбора не совпадает с заданным выражением. Ветвь default не является обязательной. Если же она отсутствует и выражение не совпадает ни с одним из условий выбора, то никаких действий вообще не выполняется. Если же происходит совпадение с одним из условий выбора, то выполняются операторы, связанные с этим условием, вплоть до оператора break.
Ниже приведен пример программы, в котором демонстрируется применение оператора switch.
// Продемонстрировать применение оператора switch.
Using System;
class SwitchDemo { static void Main() { int i;
for(i=0; i
case 0:
Console.WriteLine(i равно нулю); break; case 1:
Console.WriteLine(i равно единице); break; case 2:
Console.WriteLine(i равно двум); break; case 3:
Console.WriteLine(i равно трем); break; case 4:
Console.WriteLine (i равно четырем); break;
default: (
Console.WriteLine(i равно или больше пяти); break;
}
}
}
Результат выполнения этой программы выглядит следующим образом.
i
Равно
Нулю.
i
Равно
Единице.
i
Равно
Двум.
i
Равно
Трем.
i
Равно
Четырем.
i
Равно
Или больше
Пяти
i
Равно
Или больше
Пяти
i
Равно
Или больше
Пяти
i
Равно
Или больше
Пяти
i
Равно
Или больше
Пяти
Как видите, на каждом шаге цикла выполняются операторы, связанные с совпадающей константой выбора, в обход всех остальных операторов. Когда же значение
Переменной i становится равным или больше пяти, то оно не совпадает ни с одной из констант выбора, а следовательно, выполняются операторы из ветви default.
В приведенном выше примере оператором switch управляла переменная i типа int. Как пояснялось ранее, для управления оператором switch может быть использовано выражений любого целочисленного типа, включая и char. Ниже приведен пример применения выражения и констант выбора типа char в операторе switch.
// Использовать элементы типа char для управления оператором switch.
Using System;
class SwitchDemo2 { static void Main() { char ch;
for(ch=’A’; ch
Console.WriteLine(ch содержит A); break; case ‘В’:
Console.WriteLine(ch содержит В); break; case ‘С’:
Console.WriteLine(ch содержит С); break; case ‘ D’ :
Console.WriteLine(ch содержит D); break; case ‘E’:
Console.WriteLine(ch содержит E); break;
}
}
}
Статьи к прочтению:
- Как видите, при реализации члена mymeth () интерфейса imylf указывается его полное имя, включающее в себя имя его интерфейса.
- Как вы думаете, что сегодня нужно, чтобы создавались такие фильмы как «москва слезам не верит», «любовь и голуби» и так далее?
Уроки Java для начинающих | #7 — Условные операторы
Похожие статьи:
-
Дополнительные операторы управления
ОПЕРАТОРЫ УПРАВЛЕНИЯ. Следование. Ветвление. В языке С# реализован полный набор управляющих конструкций структурного программирования: следование,…
-
Операторы условных и безусловных переходов.
Операторы циклов. Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех…