Zapadni Balkan SA-MP

PAWN | SKRIPTANJE => SAMP Tutorijali => Topic started by: V01D on November 24, 2024, 09:01:43 PM

Title: [TUTORIAL] Ternary Operator
Post by: V01D on November 24, 2024, 09:01:43 PM
TERNARY OPERATOR UPOTREBA

Pravim ovaj tutorial zato sto ljudi idalje ne znaju zasto se koristi niti da uopste postoji ternary operator. Trudio sam se da objasnim najbanalnije moguce i najosnovnije tako da kada pocetnici vide da neko ovo koriste, ne pomisle da je neka crna magija u pitanju..

Code: You are not allowed to view links. Register or Login
new bool:isPlayerHelper[MAX_PLAYERS]; //Uzmimo za primer jednu bool promenljivu

//Negde u skripti joj dodelimo vrednost true ili false
isPlayerHelper[playerid] = true;


//Zatim primer ternary operatora mozemo videti u par primera :

CMD:jesamlihelper(playerid) { //Banalan primer u komandi

   SendClientMessage(playerid, -1, isPlayerHelper[playerid] ? "Jeste Helper" : "Nije helper");

   //Uzimamo primer SendClientMessage koja ima 3 argumenta

   // playerid -> ID igraca kome saljemo poruku
   // boja -> U ovom slucaju -1 ( BELA )
   // string -> Poruka koja se salje

   return 1;
}

E sada, u primeru iznad, zamenili smo argument string iz SendClientMessage funckije i iskoristili ternary operator u istoj

U prevodu proverili smo vrednost promenljive isPlayerHelper[playerid] i na osnovu vrednosti iste poslali odredjenu poruku

Ternary Operator je zapravo kraca verzija if/else provere, i moze dosta da skrati posao

Kako bi ovaj primer izgledao sa IF/ELSE ?

Code: You are not allowed to view links. Register or Login
CMD:jesamlihelper(playerid) { //Banalan primer u komandi

   if(isPlayerHelper[playerid]) {
      SendClientMessage(playerid, -1, "Jeste Helper");
   }
   else {
      SendClientMessage(playerid, -1, "Nije helper");
   }

   return 1;
}


Sta se zapravo desava?

Ternary operator funkcionise tako sto prvo postavimo odredjeni uslov, a zatim sta ce se desiti ako je uslov ispunjen ili nije ispunjen


Code: You are not allowed to view links. Register or Login
USLOV ? akoJeIspunjen : akoNijeIspunjen

Takodje, ternary operator se moze koristiti u raznim slucajevima, takodje jos jedan banalniji primer sa brojevima :

Code: You are not allowed to view links. Register or Login
new a = 3,
   b = 5;

new rezultat;

//Sada cemo da proverimo da li su a i b jednaki, ako jesu pomozicemo ih, ako nisu sabracemo ih i staviti vrednost u promenljivu rezultat

rezultat = (a == b) ? a * b : a + b;

//Ovde bi promenljiva rezultat imala vrednost 8

Nadam se da je sada malo jasnije cemu ovo sve sluzi, zasto se koristi i koliko je zapravo korisno za upotrebu

Ukoliko nekome bilo sta iz ovog tutoriala nije jasno, slobodno moze da pita
Title: Re: [TUTORIAL] Ternary Operator
Post by: Vostic on November 24, 2024, 09:11:47 PM
? : : ?
SimplePortal 2.3.7 © 2008-2026, SimplePortal