Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
76
Добавлен:
27.04.2015
Размер:
290.5 Кб
Скачать

If (выражение) оператор_1; [ else оператор_2;]

Порядок выполнения оператора следующий: если значение выражения не нуль (“Истина”), то выполняетсяоператор_1, в противном случае выполняютсяоператор_2, стоящие послеelse. Конструкцияelseможет от­сутствовать (в формате она взята в квадрат­ные скобки) – случай усеченного разветвления.

Выражениеможет быть логическим или арифметическим. Ненулевое значение арифметического выражения интерпретируется как “Истина”, а нулевое - как “Ложь”.

Рассмотрим примеры записи однострочного оператора if:

if (X > 0) Y=sqrt(X);

else Y=1;

if (D) EPSILON=0.001;

if (LAMBDA < 1 || BETA == 3 ) {cout << LAMBDA<<BETA ; X=0;}

if (X < 10) Y=1;

else if (X < 100) Y=2;

else Y=4; 

if ( i<j ) { j = 0; i--; }

else { j = i-3; i++; }

Другим способом организации выбора из множества различных вариантов является использование специального оператора выбора switch.

Оператор switch предназначен для организации выбора из множества различных вариантов. Оператора switch имеет следующий формат:

switch ( выражение )

{ [объявление]

:

[ case константное_выражение_1]: [ список_операторов_1]

[ case константное_выражение_2]: [ список_операторов_2]

:

:

[ default: [ список_операторов_default ] ]

}

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

Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным выражением.

Порядок выполнения оператора switch следующий:

  • вычисляется выражение в круглых скобках;

  • вычисленные значения последовательно сравниваются с константными_выражениями следующими за ключевыми словами case;

  • если одно из константных_выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;

  • если ни одно из константных_выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий послеswitch оператор.

Программист должен сам позаботиться о выходе из case, если это необходимо. Чаще всего для этого используется оператор break. Напрмер:

int i=2;

switch (i)

{

case 1: i += 2;

case 2: i *= 3;

case 0: i /= 2;

case 4: i -= 5;

default: ;

}

Выполнение оператора switch начинается с оператора, помеченного case 2. Таким образом, переменная i получает значение, равное 6, далее выполняется оператор, помеченный ключевым словом case 0, а затем case 4, переменная i примет значение 3, а затем значение -2. Оператор, помеченный ключевым словом default, не изменяет значения переменной.

 

char ZNAC;

int x,y,z;

switch (ZNAC)

{

case '+': x = y + z; break;

case '-': x = y - z; break;

case '*': x = y * z; break;

case '/': x = u / z; break;

default : ;

}

Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора switch и передать управление оператору, следующему за switch.

Оператор break может быть использован только внутри операторов switch, for, while или do while и обеспечивает прекращение выполнения самого внутреннего из содержащих его операторов. После выполнения оператора break управление передается оператору, следующему за прерванным.

Заметим, что оператор break нельзя использовать для выхода из нескольких вложенных циклов, а составной оператор, состоящий из двух операторов break, эквивалентен одному оператору break.

По своей сути оператор break является оператором перехода и операторы, записанные после него, выполняться не будут, если только им не будет передано управление с помощью других операторов перехода.

Соседние файлы в папке 2 Уровень повыше. Теоретика