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

3.2. Операторы отношения (сравнения) и логические

В выражениях оператор отношения и логический оператор слово oтношение обозначает взаимоотношение двух величин, т. е. результат их сравнения, а слово логический обозначает способ, которым объединяются истинное и ложное значения. Поскольку операторы отношения образуют истинный или ложный результат, они часто используются совместно с логическими операторами. Именно по этой причине они обсуждаются здесь вместе.

Операторы отношения и логические перечислены в табл. 3.1. Обратите внимание на отношения равенства и неравенства: в С++ не равно обозначается знаками !=, а равно - двойным знаком равенства, ==. В С++ результат операции отношения или логической образует результат типа bool. Другими словами, результат операции отношения или логической всегда равен либо true, либо false.

Таблица 3.1. Операторы отношения и логические в С++

Операторы отношения

Оператор

Значение

>

Больше чем

>=

Больше чем или равно

<

Меньше чем

<=

Меньше чем или равно

==

Равно

!=

Не равно

Операторы логические

Оператор

Значение

&&

И

!!

ИЛИ

!

НЕ

Замечание

Для старых компиляторов результат операции отношения и логической может быть целым числом, принимающим значение 0 или 1. Это различие носит в основном академический характер, потому что С++, как это уже отмечалось, автоматически преобразует true в 1, a false в 0 и наоборот.

Операнды, участвующие в операции отношения, могут принадлежать почти любому типу; необходимо только, чтобы их сравнение имело смысл. Операнды логической операции должны образовывать истинный или ложный результат. Поскольку ненулевое значение истинно, а нулевое ложно, это означает, что логические операторы допустимо использовать с любым выражением, дающим нулевой или ненулевой результат. Логические операторы используются для поддержки базовых логических операций И (AND), ИЛИ (OR) и НЕ (NOT), согласно следующей таблице истинности:

Р

q

p И q

p ИЛИ q

НЕ р

Ложь

Ложь

Ложь

Ложь

Истина

Ложь

Истина

Ложь

Истина

Истина

Истина

Истина

Истина

Истина

Ложь

Истина

Ложь

Ложь

Истина

Ложь

Оба типа операторов, и логические, и отношения, имеют более низкий приоритет, чем арифметические операторы. Это означает, что выражение вроде 10 > 1 + 12 дает тот же результат, что и вариант 10 > (1 + 12). Результат, разумеется, ложен.

С помощью логических операторов можно объединять любое количество операторов отношения. Например, в этом выражении объединены три оператора отношения:

var > 15 || !(10< count) && 3 <= item

3.3. Операторы выбора в С++

Язык С++ предоставляет программисту три типа структур выбора в форме операторов. В операторе выбора if некоторое действие либо выполняется (выбирается), если условие истинно, либо пропускается, если это условие ложно. В операторе выбора if..else некоторое действие выполняется, если условие истинно, и выполняется другое действие, если это условие ложно. В операторе выбора switch выполняется одно из набора различных действий в зависимости от значения некоторого выражения. В языке С++ также существует четвертый оператор выбора - тернарный условный оператор ?:, который является альтернативой оператору if..else.

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