Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию