Меньше <, (7) Больше или равно > =, (7)
Меньше или равно <=, (7) Не равно!= (8)
Больше > (7) Равно = =. (8)
Используются для сравнения в условных выражениях. Вырабатывают значения «истина» и «ложь».
Не следует путать знаки = и = =. С помощью операции присваивания (=) некоторой переменной слева от этого знака присваивается значение. А с помощью операции отношений (= =) проверяется равенство выражений, стоящих слева и справа от этого знака.
Все операции отношений возвращают результат «истина» или «ложь» (0 или 1). Значение переменных при этом не изменяется.
При сравнении float лучше пользоваться только операциями < и >, т.к. ошибки округления могут привести к тому, что числа окажутся неравными, хотя по логике они должны быть равны. (например 3*1/3 равно 1,0, но 1/3 в вещественном формате будет представлена как 0,999999…, и произведение не будет равно 1)
Приоритет больше чем у операции присваивания, но меньше чем у +, -.
y > x+2; - сначала сложение, затем сравнение.
Логические операции
Используются для проверки условия, вырабатывая значение истина или ложь.
|
|
1) && "И" (операция логического умножения.)
Выражение истинно только в том случае, если истинны выражения, стоящие до и после &&. Если первое – ложь, то дальше не проверяется. (12)
2) || "ИЛИ" (логическое сложение.)
Выражение истинно, если одно из выражений истинно. Если первое – истина, дальше не проверяется (13)
3)! "НЕ" (отрицание) (2)
Булева логика:
x | y | && | || | ! |
0 11 | ||||
Примеры:
if(x>0 && x<10) действие
5>2 && 4>7 - ложь
5>2 || 4>7 - истина
!(4>7) – истина
У операции! (НЕ) очень высокий приоритет (выше только у скобок). && и || выше присваивания, но ниже чем отношения.
a>b && b>c || b>d
((a>b) && (b>c) || (b>d))