Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab5.doc
Скачиваний:
3
Добавлен:
13.09.2019
Размер:
528.38 Кб
Скачать

Операції відношення і логічні операції

Операції відношення використовуються для порівняння. Повний список операцій відношення в мові С наступний:

< менше,

<= менше або дорівнює,

> більше,

>= більше або дорівнює,

== дорівнює,

!= не дорівнює.

У мові С є також три логічні операції:

&& і (AND),

|| або (OR),

! не (NOT).

Операції відношення використовуються в умовних виразах, або, коротше, умовах. Приклади умовних виразів:

а<0, 101>=105, 'a'=='A', 'a'!='A'

Кожний умовний вираз перевіряється: істинний він або ні. Точніше варто сказати, що кожний умовний вираз отримує значення "істинно" ("true") або "невірно" ("false"). У мові С немає логічного (булевого, boolean) типу. Тому результатом логічного виразу є цілочисельне арифметичне значення. У мові С "істинно" - це ненульове значення, "невірно" - це нуль. У більшості випадків у якості ненульового значення "true" використовується одиниця. Так, із приведених вище прикладів умовних виразів 2-е і 3-є отримали значення "нуль", а 1-е і 4-е - ненульові значення. Розглянемо приклад.

#include <stdio.h>

/' Приклад 6.3 */

main()

{

int tr, fal;

tr = (101<=l05); /*вираз "істинний" */

fal = (101>l05); /*вираз "невірний" */

printf("true - %d false - %d\n", tr, fal);

return 0;

}

Логічні операції в мові С відповідають класичним логічним операціям AND(&&), OR (||) і NOT (!), а їхній результат - відповідним таблицям, що прийнято називати таблицями істинності:

Х

Y

X AND Y

X OR Y

NOT X

X XOR Y

1

1

0

0

1

0

1

0

1

0

0

0

1

1

1

0

0

0

1

1

0

1

1

0

Операція XOR називається операцією "що виключає або". У мові С немає знака логічної операції XOR, хоча вона може бути реалізованою за допомогою операцій AND, OR і NOT. Однак надалі ми будемо розглядати побітові операції, серед яких операція "що виключає або" уже є.

Операції відношення і логічні операції мають пріоритет нижче чим арифметичні операції. Це значить, що вираз 12>10+1 розглядається як вираз 12>(10+1).

Старшинство логічних операцій і операцій відношення наступне:

Старша !

> < >= <=

== !=

&&

Молодша ||

У логічних виразах, як і у всіх інших, можна використовувати круглі дужки, що мають найвищий пріоритет. Крім того, круглі дужки дозволяють зробити логічні вирази більш зрозумілими і зручними для читання. Умовні і логічні вирази використовуються в керуючих операторах мови С, таких, як if for і інших.

Особливість логічних операцій && і || перебуває в тому, що якщо при обчисленні результату операції (вир1) && (вир2) - значення лівого операнда (вир1) буде нульовим, то значення другого операнда на результат операції не зробить ніякого впливу. У цьому випадку другий операнд не обчислюється. А отже, надії на те, що при обчисленні другого операнда може відбутися збільшення якоїсь перемінної завдяки операції ++, не виправдаються. Те ж саме стосується операції ||. У цьому випадку другий операнд не обчислюється, якщо значення лівого операнда не нульове.

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