Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В Си имеется четыре операции проверки отношений, которые образуют группу с приоритетом, меньшим чем у унарных и арифметических операций.
· <
· <=
· >
· >=,
Тесно связаны с ними операции проверки равенства == (равно) и!= (не равно), у которых своя группа приоритета, причем ниже чем у операций отношения.
Распространенной ошибкой является использование знака "присвоить" = вместо "равно" ==. Операция "равно" не меняет значений операндов и тем самым принципиально отличается от "присвоить".
Обычно компиляторы выдают предупреждение о возможности такой ошибки, хотя такая замена знака операции не приводит к синтаксической ошибке.
Все шесть приведенных операций используются для формирования логических выражений, описывающих некоторые условия и принимающих значения "истина" или "ложь". В Си нет специальных логических значений, вместо них приняты числовые: 1 - "истина", 0 - "ложь".
Сложные условия со значениями "истина" или "ложь" формируются с помощью двух логических связок:
&& логическое "и",
|| - логическое "или".
Приоритет операции && (логическое умножение) выше, чем у || (логическое сложение).
В логических выражениях используется также операция отрицания!.Значение "истина" она обращает в "ложь" и наоборот. Поэтому, если ее применить к переменной с нулевым значением, то результатом будет единица. Если же ее применить к переменной с любым ненулевым значением, то результатом будет 0.
В контексте логических выражений любое ненулевое значение (не только 1) истолковывается как "истина". Например, если x = 2 и y =3, то x && y дает результат "истина", т.е. 1.
Сложные логические выражения, состоящие из простых логических выражений со связками && и || между ними вычисляются слева направо до тех пор, пока не появиться возможность установить значение всего выражения в целом. Поэтому для получения значения сложного выражения не всегда необходимость вычислить все его операнды. Иногда может хватить даже одного. Например, если в выражении
e<.001 && c>100
первое отношение не выполняется, то второе вычислять не нужно: уже ясно, что значением всего выражения будет "ложь". Аналогично, если в выражении
e<.001 || c>100
первое отношение истинно, то истинно и все выражение.
Дата публикования: 2014-12-25; Прочитано: 161 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!