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:
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.
Sada treba da u tabelu sa prioritetima uvedemo ovo što smo naučili:
| ++ -- + - |
unarni |
| * / % | |
| + - |
binarni |
| < <= > >= |
|
| == != |
|
| = += -= *= /= %= |