Relacioni operatori

Pitanje: da li je x jednako y?

Treba nam odgovor na pitanje: da li su dve vrednosti jednake?

Da bismo mogli da dobijemo odgovor na ovakvo pitanje, koristimo operator == (jednako jednako).

==

Bitno je da se zapamti sledeće:

  • = je operator za dodelu vrednosti
  • == je pitanje "da li su ove dve vrednosti jednake?"
  • == je binarni operator koji se izvršava sa leva na desno. Koristi dva argumenta i proverava da li su jednaki.

Sada ćemo da postavimo nekoliko pitanja. Pookušajte da date odgovore na njih.

 

2 == 2

Ovo je pitanje na koje je lako dati odgovor. Naravno da je 2 jednako 2. Kompjuter će odgovoriti "tačno".


1 == 2

I na ovo pitanje je lako odgovoriti. Odgovor će biti "netačno".

 

i == 0

Napomenimo da ne možemo da znamo odgovor ako ne znamo koja vrednost se u datom trenutku nalazi u promenljivoj i. Ako je ta promenljiva menjana u toku izvršavanja programa, odgovor na ovo pitanje će moći da samo kompjuter i to u toku izvršavanja programa (at runtime).

 

Zamislite da ne možete da zaspite i da brojite odvojeno bele i crne ovčice i da je uslov da biste mogli da zaspite taj da ste izbrojali dvostruko više crnih ovaca nego belih. Pitanje koje bi moglo da vam da odgovor za taj problem je:

BrojCrnihOvaca == 2 * BrojBelihOvaca

S obzirom da je prioritet operatora == dosta nizak, ovo pitanje je identično sledećem pitanju:

BrojCrnihOvaca == (2 * BrojBelihOvaca)


Pitanje: da li je x različito od y?

Da bismo postavili ovo pitanje, koristimo != (uzvičnik jednako).

Ovo je takođe binarni operator i isto ima dosta nizak prioritet.

Zamislite da želimo da pitamo da li je broj dana do kraja sveta u ovom momentu različit od nule:

BrojDanaDoKrajaSveta != 0

Ako je odgovor "tačno" to znači da je u ovom momentu broj dana do kraja sveta različit od nule !

 

Pitanje: da li je x veće od y?

Da biste postavili ovo pitanje, koristite operator > (veće od). Ako želite da znate da li imate više crnih ovaca nego belih, možete postaviti pitanje kao u nastavku:

BrojCrnihOvaca > BrojBelihOvaca

 

PodPitanje: da li je x veće ili jednako y?

 

U ovom slučaju imamo dva znaka jedan iza drugog koji zajedno čine jedan operator ( >= )

Ako želimo da pitamo da li je temperature napolju veća ili jednaka nuli :

TemperaturaNapolju >= 0

Oba operatora ( > i >= ) su binarni poeratori koji se izvršavaju sa leva na desno i njihov prioritet ja veći nego prioritet operatora == i !=.


Pitanje: da li je x manje (ili jednako) od y?

Operatori koji se koriste u ovom slučaju su: < (manje od) operator i <= (manje ili jednako). U primeru koji sledi odgovorite na pitanje - kada ćete biti kažnjeni na autoputu

TrenutnaBrzina < 120

TrenutnaBrzina <= 120

 

Na koji način koristimo odgovor koji smo dobili?

Jedan od načina na koji možemo da iskoristimo odgovor na neko pitanje je da ga zapamzimo tako što ćema ga sačuvati u nekoj promenljivoj i onda ćemo to kasnije iskoristiti. Na koji način se to može izvesti? Na primer,možemo da uzmemo neku promenljivu tipa int, kao:

int Odgovor, Vrednost1, Vrednost2;

Odgovor = Vrednost1 >= Vrednost2;

Ako je odgovor na pitanje "tačno" zbog toga što je Vrednost1 veća ili jednaka od Vrednost2, kompjuter će promenljivoj Odgovor dodeliti vrednost 1 (1 je različito od nule). Ako je Vrednost1 manja od Vrednost2, u promenljivu Odgovor biće upisana 0.

Drugi način na koji može da se iskoristi odgovor na neko pitanje je dosta zgodniji i češće se koristi: možemo da iskoristimo odgovor da bismo odlučili šta dalje da radimo u našem programu. U tom cilju se koriste posebne naredbe, ali o tom malo kasnije. 

Sada treba da u tabelu sa prioritetima uvedemo ovo što smo naučili:


++ -- + -
unarni
* / %  
+ -
binarni
< <= > >=
 
== !=
 
= += -= *= /= %=