АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Условный оператор? . Оператор switch

Читайте также:
  1. ГОРОД МОСКВА, УЛИЦА РАМЕНКИ, ДОМ 21 (Двадцать один), КВАРТИРА 142 (Сто сорок два), условный номер квартиры – 77-77-03/077/2007-545.
  2. До появления Операторов.
  3. Оператор CREATE DATABASE
  4. Оператор goto
  5. Оператор if
  6. Оператор switch
  7. Оператор switch (переключатель)
  8. Оператор комп’ютерного набору
  9. Операторы уходят.
  10. Операторы.
  11. Оргкомитет конкурса обеспечивает на конкурсе работу звукооператора.
  12. Основные арифметические операторы и организация ветвлений в программах

Оператор? может использоваться для замены стандартной конструкции if/else:

if (условие) выражение;

else выражение;

Ограничением в данном случае является использование единственного выражения как после if, так и после else.

Оператор? называется триадным оператором, поскольку ему требуется три операнда и он имеет следующий вид:

выражение1? выражение2: выражение3

где выражение1, выражение2 и выражение3 - это выражения.

Оператор? работает следующим образом. Вычисляется выражение1. Если оно истинно, вычисляется выражение2 и вся конструкция получает вычисленное выражение. Если выражение1 ложно, вычисляется выражение3 и вся конструкция получает вычисленное выражение. Например:

х = 10;

у = х > 9? 100: 200;

В данном примере у получает значение 100. Если бы х было меньше, чем 9, то у получило бы значение 200.

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

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

Оператор default выполняется, если не найдено соответствий, default необязателен и, если его нет, то в случае отсутствия совпадений ничего не происходит. Когда обнаруживается совпадение, операторы, ассоциированные с соответствующим case, выполняются до тех пор, пока не встретится оператор break. В случае default (или последнего case, если отсутствует default), оператор switch заканчивает работу при обнаружении конца.

Следует знать о трех важных моментах оператора switch:

1. switch отличается от if тем, что он может выполнять только операции проверки строгого равенства, в то время как if может вычислять логические выражения и отношения.

2. Не может быть двух констант в одном операторе switch, имеющих одинаковые значения. Конечно, оператор switch, включающий в себя другой оператор switch, может содержать аналогичные константы.

3. Если в операторе switch используются символьные константы, они автоматически преобразуются к целочисленным значениям.

Оператор switch часто используется для обработки команд клавиатуры типа работа с меню. Как показано ниже, функция menu() отображает меню для программы проверки орфографии и вызывает соответствующие процедуры:

void main(void)
{
char ch;

cout<<”1.Check Spelling"<<endl;
cout<<”2. Correct Spelling Errors”<<endl;
cout<<"3. Display Spelling Errors"<<endl;
cout<<"Strike Any Other Key to Skip"<<endl;
cout<<" Enter your choice: "<<endl;

cin>>ch; /* чтение с клавиатуры */

switch(ch) {
case '1':
check_spelling();
break;
case '2':
correct_errors();
break;
case '3';
display_errors();
break;
default:
cout<<”No option selected"<<endl;
}
}

С технической точки зрения операторы break являются необязательными в операторе switch. Они используются для окончания работы последовательности операторов, ассоциированных с данной константой. Если оператор break отсутствует, продолжают выполняться операторы следующего раздела, пока не будет достигнут оператор break или конец оператора switch.


1 | 2 | 3 | 4 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.)