Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Sottra poslato April 02, 2015, 20:01:51 POSLE PODNE

Naslov: [Savjet] Foreach
Poruka od: Sottra poslato April 02, 2015, 20:01:51 POSLE PODNE
O kakvom savjetu se radi: Da li je bolje koristiti obicnu petlju for ili foreach?
Detaljan opis savjeta: Koja je razlika izmedju ovoga:
for(new i = 0, i < MAX_PLAYERS; i++)
{
GivePlayerMoney(i, 500);
}

i ovoga:
foreach(Player, i)
{
    GivePlayerMoney(i, 500);
}

Sta je bolje koristiti i kakva je razlika?
Komentar: Hvala unapred
Naslov: Odg: [Savjet] Foreach
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato April 02, 2015, 20:17:18 POSLE PODNE
Foreach je bolji a evo i zasto ...

Ovim kodom ti prolazis skroz sve igrace koje si postavio u MAX_PLAYERS znaci ako ti je MAX_PLAYERS primer na 100 ovo ce ti proci kroz svih 100 i ako nisu mozda svi na serveru ...
for(new i = 0, i < MAX_PLAYERS; i++)

Dok kod foreacha je to drugacije on ce proci samo kroz one koji su online na serveru znaci ako imas MAX_PLAYERS podesen na 100 u predhodnom primeru prolazimo kroz svih 100 igraca a imas na serveru primer 50 igraca i foreach ce proci samo kroz njih 50 ...

Naslov: Odg: [Savjet] Foreach
Poruka od: Sottra poslato April 02, 2015, 20:25:46 POSLE PODNE
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato April 02, 2015, 20:17:18 POSLE PODNE
Foreach je bolji a evo i zasto ...

Ovim kodom ti prolazis skroz sve igrace koje si postavio u MAX_PLAYERS znaci ako ti je MAX_PLAYERS primer na 100 ovo ce ti proci kroz svih 100 i ako nisu mozda svi na serveru ...
for(new i = 0, i < MAX_PLAYERS; i++)

Dok kod foreacha je to drugacije on ce proci samo kroz one koji su online na serveru znaci ako imas MAX_PLAYERS podesen na 100 u predhodnom primeru prolazimo kroz svih 100 igraca a imas na serveru primer 50 igraca i foreach ce proci samo kroz njih 50 ...
Hvala :D
Naslov: Odg: [Savjet] Foreach
Poruka od: arnel avdic poslato April 03, 2015, 16:23:59 POSLE PODNE
ali mozes i ovako
for(new i = 0, i < MAX_PLAYERS; i++) ali da ispod ide
IsPlayerConnected(i) mada opet ce proci kroz sve igrace
Naslov: Odg: [Savjet] Foreach
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato April 03, 2015, 16:59:39 POSLE PODNE
Citat: arnel avdic poslato April 03, 2015, 16:23:59 POSLE PODNE
ali mozes i ovako
for(new i = 0, i < MAX_PLAYERS; i++) ali da ispod ide
IsPlayerConnected(i) mada opet ce proci kroz sve igrace

I sta dobija sa tim ajd mi objasni kada je covek cak i ovde objasnio pogotovo ovaj kod koji si mu ti sad dao ... http://forum.sa-mp.com/showthread.php?t=92679
To sto si ti napisao je ono o cemu sam mu ja pricao cim ides preko tog koda for(new i = 0, i < MAX_PLAYERS; i++) prolazis kroz sve igrace koje si definisao u MAX_PLAYERS dok foreach to ne radi ...
Naslov: Odg: [Savjet] Foreach
Poruka od: arnel avdic poslato April 03, 2015, 17:04:53 POSLE PODNE
pa rekao sam da moze i tako ali svejedno je jer je isto sry
Naslov: Odg: [Savjet] Foreach
Poruka od: // xunder poslato April 03, 2015, 19:18:32 POSLE PODNE
Po meni foreach..
8)
Naslov: Odg: [Savjet] Foreach
Poruka od: RilleX poslato April 03, 2015, 22:11:43 POSLE PODNE
A sta se moze lose desiti sa for petljom da li moze doci do laga ?
Naslov: Odg: [Savjet] Foreach
Poruka od: arnel avdic poslato April 03, 2015, 22:37:15 POSLE PODNE
Citat: [BM:RP] Leon poslato April 03, 2015, 22:11:43 POSLE PODNE
A sta se moze lose desiti sa for petljom da li moze doci do laga ?
isti ti je ba vrag samo lakse napisati foreach(Player,i) nego for(new i; i < MAX_PLAYERS; i++)
Naslov: Odg: [Savjet] Foreach
Poruka od: Seiz poslato April 03, 2015, 22:43:41 POSLE PODNE
Citat: arnel avdic poslato April 03, 2015, 22:37:15 POSLE PODNE
Citat: [BM:RP] Leon poslato April 03, 2015, 22:11:43 POSLE PODNE
A sta se moze lose desiti sa for petljom da li moze doci do laga ?
isti ti je ba vrag samo lakse napisati foreach(Player,i) nego for(new i; i < MAX_PLAYERS; i++)
for proverava sve igrace to jest slotove na koliko si definisao max_players a foreach proverava samo igrace koji su online ali sve u svemu ima mala razlika.
Naslov: Odg: [Savjet] Foreach
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato April 04, 2015, 00:25:26 PRE PODNE
Citat: arnel avdic poslato April 03, 2015, 22:37:15 POSLE PODNE
Citat: [BM:RP] Leon poslato April 03, 2015, 22:11:43 POSLE PODNE
A sta se moze lose desiti sa for petljom da li moze doci do laga ?
isti ti je ba vrag samo lakse napisati foreach(Player,i) nego for(new i; i < MAX_PLAYERS; i++)

Nije bas isto ... Po tebi je onda isto dal ja prosao kroz njih 500 ili kroz 100 ... Razlika nije nesto ogromna ali ima razlike i zbog toga je bolje koristiti foreach ... A ti idi malo i prouci oko optimizacije scripte.
Naslov: Odg: [Savjet] Foreach
Poruka od: Denis_Lapi poslato April 04, 2015, 01:22:45 PRE PODNE
MAX_PLAYERS ide do velicine definisane vrednosti. Znaci ako postavis definiciju da je MAX_PLAYER jednaka 1000 tebi ce se petlja ponavljati 1000x. A ti primera radi imas 50 igraca, sto znaci da ce se petalj ponavljati 950x za dzabe.

Dok foreach uzima trenutnu vrednost igraca na serveru i ide samo do tog broja.
For koristi za neke tacno odredjene petlje koje ne variraju. A foreach za igrace iz gore navedenih razloga.