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

Операнди и резултати логичких оператора су логичког типа true/false, иако се представљају целобројним типом и имају вредност 1 (true), односно 0 (false) за резултат, а за операнде вредност различита од 0 представља true, а вредност 0 представља false.

Постоје три логичка оператора:

  • префиксни унарни ! – логичко не (not) (ако је вредност оператора true вредност резултата је false, и обрнуто)
  • бинарни оператор && – логичко и (and) (ако оба операнда имају вредност true и вредност резултата је true, у свим осталим случајевима вредност резултата је false)
  • бинарни оператор || – логичко или (or) (ако оба операнда имају вредност false и вредност резултата је false, у свим осталим случајевима вредност резултата је true)

Табеле истинитости логичких оператора:

логичко НЕ:

! 0 x
1 0

Логичко И:

&& 0 x
0 0 0
x 0 1

Логичко ИЛИ:

|| 0 x
0 0 1
x 1 1

Код бинарних логичких оператора увек се прво израчунава вредност операнда са леве стране. Уколико је вредност тог операнда 0, вредност другог операнда оператора && се уопште не израчунава, пошто се и без тога зна да је коначни резултат 0. Слично, ако је вредност првог операнда true вредност другог операнда оператора || се не израчунава, пошто се и без тога зна да је коначни резултат 1.

Последица претходних правила је да се у случају више узастопних оператора && односно || који се извршавају слева надесно, израчунавање се прекида оног момента кад се зна коначан резултат. На пример, у изразу a&&b&&c, ако је операнд a=0, онда се операнди b и c не испитују. Ако су они изрази – вредности тих израза се уопште не израчунавају!

Примери (у коментарима је наведен редослед извршавања оператора):

a&&b||c&&d      /* (a&&b)||(c&&d) */
a==b&&c>=d      /* (a==b)&&(c>=d) */
a+1!=b||!c      /* ((a+1)!=b)||(!c) */
a<b&&b<5        /* да ли је b између a и 5? */
Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s