Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Операции отношения и логические операции
Операциями отношения являются
=> > =< <
все они имеют одинаковое старшинство. Непосредственно за ни- ми по уровню старшинства следуют операции равенства и нера- венства:
==!=
которые тоже имеют одинаковое старшинство. операции отноше- ния младше арифметических операций, так что выражения типа I<LIM-1 понимаются как I<(LIM-1), как и предполагается. Логические связки && и \!\! более интересны. Выражения, связанные операциями && и \!\!, вычисляются слева направо, причем их рассмотрение прекращается сразу же как только ста- новится ясно, будет ли результат истиной или ложью. учет этих свойств очень существенен для написания правильно рабо- тающих программ. Рассмотрим, например, оператор цикла в счи- тывающей строку функции GETLINE, которую мы написали в главе 1. FOR(I=0;I<LIM-1 && (C=GETCHAR())!= '\N' && C!= EOF; ++I) S[I]=C;
Ясно, что перед считыванием нового символа необходимо проверить, имеется ли еще место в массиве S, так что условие I<LIM-1 должно проверяться первым. И если это условие не вы- полняется, мы не должны считывать следующий символ. Так же неудачным было бы сравнение 'C' с EOF до обраще- ния к функции GETCHAR: прежде чем проверять символ, его нужно считать. Старшинство операции && выше, чем у \!\!, и обе они младше операций отношения и равенства. Поэтому такие выраже- ния, как
I<LIM-1 && (C = GETCHAR())!= '\N' && C!= EOF
не нуждаются в дополнительных круглых скобках. Но так как операция!= старше операции присваивания, то для достижения правильного результата в выражении
(C = GETCHAR())!= '\N'
кобки необходимы.
Унарная операция отрицания! Преобразует ненулевой или истинный операнд в 0, а нулевой или ложный операнд в 1. Обычное использование операции! Заключается в записи
IF(! INWORD)
Вместо
IF(INWORD == 0)
Tрудно сказать, какая форма лучше. Конструкции типа! INWORD Читаются довольно удобно ("если не в слове"). Но в более сложных случаях они могут оказаться трудными для понимания.
Date: 2015-09-17; view: 341; Нарушение авторских прав |