Оператор switch
Оператор switch(переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Структурная схема оператора приведена на рис. 3.2.
Формат оператора:
switch ( выражение ){
case константное_выражение_1: [список_операторов_1]
case константное_выражение_2: [список_операторов_2]
case константное_выражение_n: [список_операторов_n]
[default: операторы ]
}
Рис. 3.2. Структурная схема оператора switch
Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается первому оператору из списка, помеченного константным выражением, значение которого совпало с вычисленным. После этого, если выход из переключателя явно не указан, последовательно выполняются все остальные ветви.
Выход из переключателя обычно выполняется с помощью операторов break или return. Оператор break выполняет выход из самого внутреннего из объемлющих его операторов switch, for, while и do. Оператор return выполняет выход из функции, в теле которой он записан.
Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы, расположенные после слова default (а при его отсутствии управление передается следующему за switch оператору).
Пример: программа реализует простейший калькулятор на 4 действия):
#include <iostream.h>
int main(){
int a, b, res;
char op;
cout << “\nВведите 1-й операнд :”; cin >> a;
cout << “\nВведите знак операции”; cin >> op;
cout << “\nВведите 2-й операнд :”; cin >> b;
bool f = true;
switch (op){
case ’+’: res = a + b; break;
case ’-’: res = a – b; break;
case ’*’: res = a * b; break;
case ’/’: res = a / b; break;
default: cout <<"\nНеизвестная операция"; f = false;
}
if (f) cout << "\nРезультат: ”; << res;
return 0;
}
В случае синтаксической ошибки в слове default сообщение об ошибке не выдается, поскольку компилятор воспримет это слово как допустимую метку оператора.
Дата добавления: 2015-10-09; просмотров: 1274;