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
|