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

17. If..Else

Как работает условный оператор if..else

Синтаксис оператора if..else имеет следующий вид:

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

оператор;

else

оператор;

Блок-схема выполнения оператора if..else приведена на рис. 3.2.

Рис. 3.2. Исполнение оператора if..else

В теле оператора выбора if предполагается наличие только одного оператора. Чтобы включить в тело if несколько операторов, нужно заключить этот набор операторов в фигурные скобки ({ и }). Совокупность операторов, содержащихся внутри пары фигурных скобок, называется составным оператором или блоком. Составной оператор может быть помещен в любое место программы, где может стоять простой оператор.

Следующий пример содержит составной оператор в ветви else оператора if..else.

if ( grade >= 60 )

cout << “Зачет”;

else

{

cout << “Незачет”;

cout << “Вам следует снова пройти этот курс”;

}

Обратите внимание на фигурные скобки, в которые заключены оба оператора в предложении else. Эти скобки важны. Без этих скобок оператор

Cout << “Вам следует снова пройти этот курс”;

оказался бы вне тела else-ветви оператора if и выполнялся бы вне зависимости от того, меньше 60 значение grade или нет.

18. Тернарный условный оператор

Условный оператор ? — единственный оператор в языке C++, который работает сразу с тремя операндами. Он получает три выражения и возвращает значение:

(выражение1) ? (выражение2): (выражениеЗ)

Эту строку можно прочитать так: "Если выражение1 истинно, возвратить значение выражения2, в противном случае возвратить значение выражения3". Как правило, это значение присваивается переменной. Следующий пример демонстрирует применение условного оператора ? вместо оператора if..else.

stroka =(grade >=60) ? “зачет”: “незачет”;

cout << stroka;

19. Switch

Оператор множественного выбора switch

В некоторых ситуациях применение оператора if может привести к возникновению очень сложных конструкций с большим количеством вложенных операторов. Язык C++ располагает альтернативным решением этой проблемы — оператором switch. В отли­чие от оператора if, он позволяет проверять сразу несколько условий, организуя ветв­ление программы более эффективно. Оператор switch имеет следующий синтаксис:

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

{

case значение1: оператор;

break;

case значение2: оператор;

break;

...

case значениеN: оператор;

break; default: оператор;

}

Выражение в скобках оператора switch представляет собой любое допустимое вы­ражение языка C++, а оператор — это любой допустимый оператор или блок опера­торов. Выражение возвращает (или может быть однозначно преобразовано в) целочис­ленное значение. Поэтому использование логических операций или выражений сравнения здесь недопустимо.

Переход осуществляется к той строке оператора switch, где после ключевого сло­ва case находится значение, соответствующее результату выражения. С этой строки выполнение операторов продолжится до тех пор, пока оператор switch не завершится либо пока не встретится оператор break. Если ни одно значение case не соответст­вует результату выражения, выполняются операторы, следующие за ключевым словом default, а в случае его отсутствия оператор switch завершается. Блок-схема выполнения оператора if..else приведена на рис. 3.3.

Рис. 3.3. Исполнение оператора if..else

Пример использования оператора switch приведен в листинге 3.3.

Листинг 3.3. Пример использования оператора switch

// DemoSwitch.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

using namespace std;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]