Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> C / C++ -> Книга по Си


Переключатель

      Мы уже напоминали о том, что использовать для многозадачного ветвления в программе вложенные операторы if-then-else Если глубина вложенности этих операторов свыше трех, то конструкция теряет ясность. Более наглядным и понятным в данной ситуации выглядит оператор switch (переключатель), специально предназначенный для принятия одного из многих решений. Чаще всего этот оператор выглядит следующим образом:

switch(целое выражение)
{
case константа1: оператор1;
case константа2: оператор2;
...
...
...
case константаn: операторn;
default        : оператор;
}

При выполнении этого оператора вычисляется выражение, стоящее в скобках после ключевого слова switch, которое должно быть целым. Оно, в частности, может быть и символьным значением (в языке Си символьные значения автоматически расширяются до целых значений). Эта целая величина используется в качестве критерия для выбора одного из возможных вариантов. Ее значение сравнивается с константой операторов case. Вместо целой или литерной константы в операторе case может стоять дае некоторое константное выражение. Значения таких констант (выражений) должны быть различными в разных операторах case. При несовпадении выполняется переход к следующему case и сравнивается его константа. В случае совпадения "константы_i" выполняется "оператор_i", а также все последующие операторы case и default. Если не было ни одного совпадения и имеется оператор default, то выполняется стоящий за ним оператор. Если же оператора default не было, выполнение программы продолжится с оператора, следующего за структурой switch. Таким образом, при каждом выполнении оператора просматриваются все метки case. Рассмотрим следующую программу (пример 5.2)

          Пример 5.2

/*проверка switch*/
#include <stdio.h>
main()
{
int k=2;
switch(k)
{
  case 0; printf("выбор 0\n");
  case 1; printf("выбор 1\n");
  case 2; printf("выбор 2\n");
  case 3; printf("выбор 3\n");
  default: printf("default\n");
  }
}

  Как видите, происходит то, о чем мы говорили: выполняется альтернатива, соответствующая k=2 и все последующие операторы case, а также выриант default. Чтобы обеспечить выбор одного из многих вариантов (что и требуется чаще всего), используют обычно оператор braek, который вызывает немедленный выход из оператора switch (пример 5.3) Для этой цели можно применять и оператор return, а continue можно применять лишь в случае, когда сам оператор switch находится внутри цикла. Тогда continue вызывает немедленный переход к следующей интеракции, без рассмотрения оставшихся case.

        Пример 5.3

/*проверка switch*/
#include <stdio.h>
main()
{
int k=2;
switch(k)
{
  case 0; printf("выбор 0\n");
         break;
  case 1; printf("выбор 1\n");
   break;
  case 2; printf("выбор 2\n");
  break;
  case 3; printf("выбор 3\n");
         break;
  default: printf("default\n");
}
}

< Дальше >

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100