►Использование простых логических операторов...55
Простые логические операторы приведены в табл. 4.1. Они могут возвращать два значения: true ( истина ) и false ( ложь ).
_________________
55 стр. Глава 4. Выполнение логических операций
Таблица 4.1. Простые операторы из повседневной логики
_________________
Оператор — Значение
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
== — ( Равенство; истинно, когда значение левого аргумента совпадает со значением правого )
!= — ( Неравенство; противоположно равенству )
> , < — ( Больше, меньше; истинно, когда значение левого выражения больше ( или меньше ) значения правого )
>= , <= — ( Больше или равно, меньше или равно; истинно, если истиной является > или == ( соответственно < или == ) )
&& — ( И; истинно, если аргументы и слева и справа являются истиной )
|| — ( ИЛИ; истинно, если или левый, или правый аргумент являются истиной )
! — ( НЕ; истинно, если его аргумент принимает ложное значение )
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Первые шесть операторов табл. 4.1 являются операторами сравнения. Оператор равенства используется для проверки равенства двух значений. Например, следующее выражение истинно, если значением n является 0 , и ложно во всех других случаях:
n == 0 ;
«Не перепутайте оператор равенства == ( двойное равно ) с оператором присвоения = ( одинарное равно ). Эта ошибка очень распространена, к тому же компилятор С++ вообще не считает её ошибкой, что делает её вдвойне опасной!»
[Атас!]
n = 0 ; /* Программист хотел написать, что n == 0 */
Широко распространены в повседневной жизни операторы "больше" ( > ) и "меньше" ( < ). Приведём пример логического выражения, возвращающего значение true.
int n1 = 1 ;
int n2 = 2 ;
n1 < n2
«Операторы "больше" и "меньше" внешне очень похожи, и поэтому их легко перепутать. Чтобы этого не случилось, помните, что оператор-стрелочка принимает значение true в том случае, когда из двух сравниваемых значений он указывает на меньшее.»
[Советы]
С помощью операторов > и < можно найти случаи, когда n1 больше или меньше n2, однако при этом игнорируется возможность равенства их значений. Операторы "больше или равно" ( >= ), "меньше или равно" ( <= ), в отличие от только что рассмотренных, учитывают и эту возможность.
Так же широко используются операторы && ( И ) и || ( ИЛИ ). Эти операторы обычно сочетаются с другими логическими операторами:
/* истинно, если n2 больше n1 и меньше n3 */
( n1 < n2 )&&( n2 < n3 ) ;
В качестве ремарки: оператор "больше или равно" можно определить как[ 8 ]
n1 <= n2 эквивалентно ( n1 < n2 ) || ( n1 == n2 )
______________
8В качестве ещё одной ремарки: операторы сравнения вообще достаточно взаимозаменяемы. Так, например, ( a == b ) эквивалентно ( ! ( a>b )&&! ( a<b ) ). — Прим. ред.
_________________
56 стр. Часть 1. Первое знакомство с С++
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ