Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2.doc
Скачиваний:
15
Добавлен:
18.11.2019
Размер:
1.09 Mб
Скачать

Замечание

Всегда используйте столько круглых скобок, сколько нужно для того, чтобы сделать ясной структуру выраже­ния. Круглые скобки совершенно не влияют на быстродействие, с их помощью вы просто задаете желаемый порядок вычисления.

Сложные выражения без круглых скобок вычисляются в соответствии с фиксированным приоритетом, на­значенным каждому оператору. Поскольку операторы * и / имеют более высокий приоритет, чем + и - , то выражение

(А + В * С)

логически идентично выражению

(А + (В * С)).

Поскольку умножение выполняется перед сложением, внутренняя пара скобок не нужна. Но если вы хоти­те выполнить сложение до умножения, вы должны написать

((А + В) * С).

К приоритетам операторов мы вернемся несколько позже, рассмотрев все операторы языка С.

В про­граммировании на С операторы / и * имеют один и тот же приоритет, таким образом выражение А / В * С вычисляется слева направо, т.е. как в выражении (А / В) * С, но не как А / (В * С).

Операторы отношений

Операторы отношений обрабатывают свои операнды таким образом, чтобы получить либо истинный (нену­левой), либо ложный (нулевой) результат. Выражение

(А < В)

истинно только в случае, если А меньше В. Переменные А и В должны принадлежать к таким типам данных, которые можно сравнивать. Обычно это целые или значения с плавающей запятой.

В табл. 2.2 перечислены все операторы отношений языка С. В дальнейшем некоторые из них вы будете ис­пользовать в операторах, которые могут принимать решения и выполнять операции, основанные на истинных и ложных выражениях.

Таблица 2.2. Операторы отношений

Оператор

Описание

Пример

<

Меньше

(а < Ь)

<=

Меньше или равно

(а <= Ь)

>

Больше

(а > Ь)

>=

Больше или равно

(а >= Ь)

==

Равно

(а == Ь)

!=:

Не равно

(а != Ь)

Замечание

Оператор равенства представлен двойным знаком равенства, таким образом, выражение (А == В) будет ис­тинно, только если А равно В. Не путайте такие выражения с операторами типа А = В, которые присваивают значение В переменной А. Для операторов присваивания всегда используйте одиночный знак равенства (=), а для сравнения двух значений — двойной (==).

Логические операторы

Логические операторы && и || объединяют выражения отношений в соответствии с правилами для логичес­кого И и ИЛИ. Используйте логический оператор И (&&) в сложных выражениях отношений, аналогичных следующему:

(А < В) && (В < С),

которое будет истинным, только если А меньше В и В меньше С.

Подобным образом используйте оператор ИЛИ (||). Выражение

(А < В) || (В < С)

будет истинным, только если А меньше В или В меньше С.

Сложные логические выражения вычисляются рациональным способом. Например, если при вычислении выражения

(А <= В) && (В <= С)

оказалось, что А больше В, то все выражение, как и его первая составляющая (А <= В), примет значение "ложь", поэтому вторая часть (В <= С) не вычисляется. Такая сокращенная обработка сложных логических выражений способствует быстрому выполнению программы. Для любого выражения отношения, чтобы по­лучить точный результат, выполняется только минимальное число операций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]