Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

1.3.3Оператор ?: и сокращенная запись для if-else

Оператор if-else имеет сокращенную форму. Посмотрите, как можно выбрать максимум из двух чисел.

int maximum = x>y ? x : y;

В общем виде оператор ?: действует так:

<тип значения> <переменная> =

<проверяемое условие> ? <значение для true>

: <значение для false>;

Оператор ?: может и не возвращать значение, другими словами, это значение может иметь тип void.

x>y ? cout << "x>y" : cout << "y>=x";

1.3.4Логические операторы и выражения

В качестве проверяемого выражения оператор if ожидает выражение, значение которого равно true или false. Такие выражения называются логическими. Внутри логических выражений могут быть другие выражения, но последняя операция (операция с наименьшим приоритетом) должна возвращать значение логического типа bool. Рассмотрим условие, проверяющее число на кратность 3:

if (number%3 == 0) {

…

}

Здесь % - это арифметическая операция взятия остатка от деления числа number на 3; остаток от деления на 3 может быть 0, 1 или 2. Результат операции сравнения == может принимать два значения: true (истина) и false (ложь); таким образом, результат этой операции имеет тип bool.

bool isFactor3 = number%3==0;

if (isFactor3) {

…

}

Здесь результат сравнения number%3==0 присваивается переменной isFactor3. Согласно приоритету вначале выполняется операция %, затем производится сравнение ==, дающее true или false, и последним происходит присваивание =.

В таблицах 6-7 приведены операции сравнения и логические операции.

Таблица 6. Операции сравнения

Оператор

Название

Пример

<

Меньше

x < y

>

Больше

x > y

<=

Меньше либо равно

x <= y

>=

Больше либо равно

x >= y

==

Равно

x == y

!=

Не равно

x != y

В следующей таблице перечислены логические операции:

Таблица 7. Логические операции

Оператор

Описание

Пример

!

Не

!(a > b)

&&

И

(5 < a) && (a < 10)

||

Или

(a == 5) || (a == 10)

1.3.5Использование оператора if без ветки else

В своем исходном виде условная конструкция if-else предназначена для выбора между двумя альтернативами: если заданное условие истинно, то выполняется первая альтернатива, иначе – вторая. Например, в следующем фрагменте кода выполняется проверка того, является ли буква гласной:

if (<буква является гласной>) {

cout << "гласная\n";

} else {

cout << "согласная\n";

}

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

  • вывести «со», если буква согласная;

  • вывести «гласная» в любом случае.

В виде программного кода это выглядит так:

if (<буква является согласной>) {

cout << "со";

}

cout << "гласная\n";