Читаем C# 4.0: полное руководство полностью

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<10; i++)

      switch(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<= 'E'; ch++)

      switch (ch) {

      case 'A':

        Console.WriteLine("ch содержит A");

        break;

      case 'B':

        Console.WriteLine("ch содержит В");

        break;

      case 'C':

        Console.WriteLine("ch содержит С");

        break;

      case 'D' :

        Console.WriteLine("ch содержит D");

        break;

      case 'E':

        Console.WriteLine("ch содержит E");

        break;

      }

  }

}


Вот какой результат дает выполнение этой программы.


ch содержит А

ch содержит В

ch содержит С

ch содержит D

ch содержит Е


Обратите в данном примере внимание на отсутствие ветви default в операторе switch. Напомним, что ветвь default не является обязательной. Когда она не нужна, ее можно просто опустить.

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных