Uvod u C   Autor: Milan Miščević
 
Jezik
Istorijat
C++
Kompajler
Razvojni ciklus
Hello.c
Greške
Komentari
Varijable
Printf i scanf
Include i main
Zbir.c
Konstante
Naredbe i izrazi
Operatori I
Zadaci I nivo
Operatori II
If/else
Zadaci II nivo
For
Zadaci III nivo
While
Zadaci IV nivo
Funkcije
Nizovi
Zadaci
Rječnik
Literatura

abc C
  Relacioni operatori

Relacioni operatori su operatori koji upoređuju vrijednosti dva izraza. U C-u postoji šest ovakvih operatora.

Operator Pitanje
== Da li su jednaki?
!= Da li su nejednaki?
> Da li je veći od?
< Da li je manji od?
>= Da li je veći od ili su jednaki?
<= Da li je manji od ili su jednaki?

Podizrazima nazovimo izraze koje povezuje relacioni operator, a nadizrazom nazovimo izraz kome isti operator daje vrijednost.
             5     ==      5
      /* podizraz       podizraz

                nadizraz */
Relacioni operator daje vrijednost nadizrazu tako što postavi svoje pitanje: "Da li su podizrazi jednaki?". Odgovor može biti samo da (tačno, 1) ili ne (netačno, 0). Primjer to najbolje ilustruje.
      #include <stdio.h>

      main()
      {
              printf("5 == 5 -> %d.\n", (5 == 5));
              printf("5 != 5 -> %d.\n", (5 != 5));
              printf("5 > 5 -> %d.\n", (5 > 5));
              printf("5 < 5 -> %d.\n", (5 < 5));
              printf("5 >= 5 -> %d.\n", (5 >= 5));
              printf("5 <= 5 -> %d.\n\n", (5 <= 5));

              printf("4 == 8 -> %d.\n", (4 == 8));
              printf("4 != 8 -> %d.\n", (4 != 8));
              printf("4 > 8 -> %d.\n", (4 > 8));
              printf("4 < 8 -> %d.\n", (4 < 8));
              printf("4 >= 8 -> %d.\n", (4 >= 8));
              printf("4 <= 8 -> %d.\n", (4 <= 8));

              return 0;
      }
      5 == 5 -> 1.
      5 != 5 -> 0.
      5 > 5 -> 0.
      5 < 5 -> 0.
      5 >= 5 -> 1.
      5 <= 5 -> 1.

      4 == 8 -> 0.
      4 != 8 -> 1.
      4 > 8 -> 0.
      4 < 8 -> 1.
      4 >= 8 -> 0.
      4 <= 8 -> 1.
Nemojte brkati operator pridruživanja (=) i operator jednakosti (==). Jedina sličnost im je oznaka, a sve ostale potpuno različito.

Logički operatori

Logički operatori su operatori koji istovremeno postavljaju više relacionih pitanja, osnosno više uslova. U C-u postoji tri ovakva operatora.

Operator Povezivanje
&& I (Konjukcija)
|| Ili (Disjunkcija)
! Ne (Negacija)

Tačnost se najlakše određuje sledećom tabelom.

Izraz1 Izraz2 Izraz1 && Izraz2 Izraz1 || Izraz2 !Izraz1
0 0 0 0 1
1 0 0 1 0
0 1 0 1 1
1 1 1 1 0

U ovom slučaju, da bih bolje objasnio upotrebu logičkih operatora, upotrijebiću primjere iz života, a naknadno u obliku koda.

&& - Da bih mogao nešto uraditi, moram biti i odmoran i voljan. Dakle, moraju biti oba uslova zadovoljena (tačna) da bih radio (tačno). Inače, ako jedan od uslova nije zadovoljen (netačan) ili oba, onda nema ništa od rada (netačno).

|| - Da bi otišao na put, trebam imati ili gotovinu ili kreditnu karticu. Ako nemam nijedno (netačno), onda nemam novaca za put (netačno). Ako imam ili jedno ili drugo (tačno) ili oboje, onda mogu otići (tačno). Bar jedan uslov je zadovoljen (tačan).

! - Negacija jednostavno samo mijenja tačno u netačno i obrnuto.
      rezultat = (5 == 6) && !(4 >= 6)
Prvo riješavamo zagrade. Da li su 5 i 6 jednaki? Nisu (0). Da li je 4 veće od 6 ili su jednaki? Nije/nisu (0). Prije zagrade je negacija pa netačno (0) postaje tačno (1). Ostaje "netačno i tačno". Pogledamo tabelu i vidimo da je to netačno. Dakle, rezultat je 0.

Logički i relacioni operatori se veoma često koriste u if/else naredbi kontrole toka aplikacije, o kojoj će biti riječi u sledećem poglavlju.

Red operacija

U sledećoj tabeli su poredani svi operatori, koji su dosada pređeni, po svoj prednosti pri izvršavanju.

Izvršavaće se Operatori
prvi ()
drugi ! ++ --
treći * / %
četvrti + -
peti > < >= <=
šesti == !=
sedmi &&
osmi ||
deveti = += -= *= /= %=

Zadaci I nivo - If/else