Uslovi: operatori, if, else, else if

Započeo Vasic
12. Mar. 2022. Zakačeno Zaključano
4,149
pregleda
8
postova
FunnyGamingDay - FGD
6
OG Legend
12. Mar. 2022.
Uslovi - operatori, if, else, else if


Tabela operatora sa primerima















Operator        Značenje  Primer
==Levo je jednako desnom  if (levo == desno)
!=Levo nije jednako desnom  if (levo != desno)
>Levo je vece od desnog  if (levo > desno)
>=Levo je vece ili jedanko desnom  if (levo >= desno)
<Levo je manje od desnog  if (levo < desno)
&&Levo i desno (striktno)  if (levo && desno)
||Levo ili desno (bilo koje)  if (levo || desno)
!not  if (!varijabla)
!nor  if (!(levo || desno))
!nand  if (!(levo && desno))
!xor, eor - samo jedno je tačno  if (!(levo && desno) && (levo || desno))
!nxor, neor - obe tačne ili nijedna  if ((levo && desno) || !(levo || desno))



Sada kada znamo šta koji operator radi, možemo da počnemo sa uslovima (if, else, else if).
Naredba if proverava da li je nešto tačno i pokreće deo koda ako jeste.
new a = 5;
if (a == 5)
{
print("a ima vrednost 5.");
}


Kod u zagradama posle "if" se naziva uslovom, postoji niz različitih stvari koje možete testirati (pogledajte tabelu operatora).
U gornjem primeru i "a" i 5 su simboli, funkcije takođe mogu biti simboli:
if (NekaFunkcija() == 5)
{
print("NekaFunkcija je jednaka 5.");
}


Ovo će testirati povratnu vrednost NekaFunkcija (pogledajte dole) u odnosu na 5.
Takođe možete kombinovati provere da biste proverili više stvari:
new a = 5, b = 3;
if (a == 5 && b != 3)
{
print("Ovo neće biti ispisano u konzoli.");
}


Ovaj primer proverava da li je "a" jednako 5 i "b" nije jednako (!=) 3, međutim "b" je 3 tako da provera ne uspeva.
new a = 5, b = 3;
if (a == 5 || b != 3)
{
print("Ovo će biti ispisano u konzoli.");
}


Dok ovaj primer proverava da li je "a" jednako 5 ILI "b" nije jednako 3. "b" je jednako 3 pa taj deo ne uspeva. Međutim, "a" je 5 tako da je taj deo tačan, koristimo || (ili) dakle samo jedan deo mora da bude tačan (ako su oba tačna, uslov je i dalje tačan, ovo se malo razlikuje od lingvističkog značenja "ili" koje znači samo jedno ili drugo), tako da je taj uslov tačan.




else - u osnovi radi nešto ako "if" to ne uspe:
new a = 5;
if (a == 3) // netačno
{
print("Ovo neće biti ispisano u konzoli.");
}
else
{
print("Ovo će biti ispisano u konzoli jer je provera iznad neuspešna.");
}





else if - je provera koja se javlja ako prva "if" provera ne uspe da proveri nešto drugo:
new a = 5;
if (a == 1)
{
print("Biće ispisano u konzoli ako je "a" 1.");
}
else if (a == 5)
{
print("Biće ispisano u konzoli ako je "a" 5.");
}
else
{
print("Biće ispisano u konzoli svakako, nebitno koju vrednost "a" ima.");
}


Možete imati else if provera koliko želite, ali ne možete imati vise od jedne "if" naredbe i više od jedne "else" naredbe:
new a = 4;
if (a == 1) // Samo jedna "if" naredba!
{
// Netačno
}
else if (a == 2)
{
// Netačno
}
else if (a == 3)
{
// Netačno
}
else if (a == 4)
{
// Tačno
}
else
{
// Netačno
}


else if provere će samo proveravati početnu vrednost kakva je i bila. Dakle, ovo NE MOŽETE da uradite:
new a = 5;
if (a == 5)
{
// Biće pozvana
a = 4;
}
else if (a == 4)
{
// Neće biti pozvana jer prva provera nije bila neuspešna, iako je "a" sada 4.
}


Da biste ovo zaobišli, u ovom slučaju samo else if prebacite u if.




Jedan prost primer:
// Recimo da u modu postoji sistem organizacija:
if(GetFactionType(playerid) == FACTION_POLICE) // Postavljamo uslov
{
    // Ako je igrač član policije, izvršiće se sledeći kod:
    GivePlayerMoney(playerid, 1000);
    SendClientMessage(playerid, -1, "Dobili ste $1000 jer ste član policije.");
}
else if(GetFactionType(playerid) == FACTION_GANG)
{
    // ...ili ako je igrač član bande, izvršiće se sledeći kod, itd...
    GivePlayerMoney(playerid, 200);
    SendClientMessage(playerid, -1, "Dobili ste $200 jer ste član bande.");
}
else if(GetFactionType(playerid) == FACTION_PARAMEDIC)
{
    GivePlayerMoney(playerid, 1200);
    SendClientMessage(playerid, -1, "Dobili ste $1200 jer ste doktor.");
}
else // Ako igrac nije clan nijedne od 3 navedene organizacije, onda:
{
GivePlayerMoney(playerid, 500);
SendClientMessage(playerid, -1, "Dobili ste $500 jer ste član neke organizacije/civil.");
}




Hvala Vam što ste odvojili vreme da pročitate tutorijal.
Moguće su greške, ne zamerite. Ukoliko uočite nešto što je nepravilno, napišite u komentaru.
Ukoliko Vam treba dodatna pomoć oko ove oblasti, napišite u komentaru ove teme (ne privatne poruke).
Sve ovo možete da pronađete online, ili na alternativnim samp-wiki stranicama, ali evo i ovde za one lenje osobe.

Former SA:MP server developer

Purda121
5
OG Legend
12. Mar. 2022.
Lijepo 😄
neshallon
5
Kingpin
12. Mar. 2022.
Vasicu, koju drogu si uzeo pa pravis sve ovo  😄
FunnyGamingDay - FGD
6
OG Legend
12. Mar. 2022.
neshallon wrote on March 12, 2022, 8:23 pm:
Vasicu, koju drogu si uzeo pa pravis sve ovo  😄

Hahah, pa, vratio sam se na samp pre mozda mesec dana zbog situacije sa Fusion Gamingom, i rekoh da postavim po koji tutorijal ovde, jer kad sam usao na forum i video sta sve traze, bilo me je sramota u njihovo ime

Former SA:MP server developer

NegativeIQ
5
Kingpin
12. Mar. 2022.
Mislim da nema potrebe da im se objasnjava XOR i slicno, to su binarni operatori i malo naprednije stvari (sta vise, koliko znam ne postoji naredba za XOR, samo binarno XOR koje je ^ ).
Sve u svemu odlicno, ako ovo nekome nije jasno neka batali programiranje i vraca se facebooku...
Tomica26
4
Made Man
13. Mar. 2022.
dobar  😉
realnaith
5
Crime Lord
6. Apr. 2023.
Bump
GoldVexY
5
Kingpin
27. Maj 2023.
Bump

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha