Как видите, последний оператор else выполняется лишь в том случае, если не удается выполнить ни один из предыдущих операторов.

      Комментарии к записи Как видите, последний оператор else выполняется лишь в том случае, если не удается выполнить ни один из предыдущих операторов. отключены

Оператор 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;

}

}

}

Статьи к прочтению:

Уроки Java для начинающих | #7 — Условные операторы


Похожие статьи: