Операторы сравнения я зыках программирования используются для проверки конкретного условия: ложное оно или истинное, они могут проверить только одно условие за определенный промежуток времени. Но часто возникают ситуации, когда нужно протестировать сразу несколько условий, для этого используются логические операции в языке C++.
Логическое И (&&) объединяет вместе два утверждения и возвращает истину только в том случае, если и левое и правое утверждения истинны. Если хотя бы одно из утверждений или оба ложны, объединенное выражение заменяется на ложь. Логическое И работает по сокращенной схеме, то есть, если первое утверждение ложь, второе уже не проверяется.
УТВЕРЖДЕНИЕ 1 УТВЕРЖДЕНИЕ 2 УТВЕРЖДЕНИЕ 1&&УТВЕРЖДЕНИЕ 2 true true true true false false false true false false false false
Теперь рассмотрим пример, в котором программа получает число и определяет, попадает ли это число в диапазон от 1 до 10.
#include <iostream> using namespace std; void main() { int N; cout<<”Enter digit:\n”; cin>>N; cout<<((N>=1)&&(N<=10)); cout<<”\n\nIf you see 1 your digit is in diapazone\n\n”; cout<<”\n\nIf you see 0 your digit is not in diapazone\n\n”; }
В данном примере, если оба утверждения будут верными, на место выражения подставится 1, в противном случае – 0. Соответственно пользователь сможет проанализировать сложившуюся ситуацию, используя инструкции программы.
Логическое ИЛИ объединяет вместе два утверждения и возвращает истину только в том случае, если хотя бы одно из утверждений верно, и ложь в том случае, если оба утверждения не верны. Логическое ИЛИ работает по сокращенной схеме, то есть, если первое утверждение истина, второе уже не проверяется.
УТВЕРЖДЕНИЕ 1 УТВЕРЖДЕНИЕ 2 УТВЕРЖДЕНИЕ 1||УТВЕРЖДЕНИЕ 2 true true true true false true false true true false false false
Логическое НЕ (!) является унарным оператором и в связи с этим не может называться оператором объединения. Оно используется в том случае, если нужно изменить результат проверки утверждения на противоположный.