[TUT] Petlja for, kako i zasto koristiti(Objasnjenje uz clear chat komandu)

Započeo Cannabis, Novembar 22, 2012, 16:11:38 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Zdravo, danas cu vam objasniti petlju ponavljanja - for, te kako i zasto je koristiti.

Kako izgleda petlja for?

Jedan tipicni primjer petlje for izgleda ovako:
for (int i=0;i<5;i++)


Gornji primjer mozemo procitati ovako:
- i je postavljen kao 0, dok god je i manji od 5 neka se i povecava za 1, u ovom slucaju ponavlja

Postepeno objasnjenje:

i=0; -> promjenjiva "i" je postavljena kao "0"
i<5; -> dok je god "i" manji od "5"
i++; -> neka "i" raste za "1"

Dakle, i ce narasti za 5 te ce neku radnju napraviti 5 puta.

Zasto bismo se mi uopce mucili sa petljama?


Recimo da morate zapisati nesto 100 puta. Vi to mozete rucno pisati/kopirati i tako samo na bezvezne stvari siriti skriptu i gubiti vrijeme, a i mozete unijeti petlju for te stime dobiti na vremenu.

Ja sam siguran da neki od vas ovo jos nisu shvatili dobro a i svjestan sam da ja ovo nisam bas dobro ni objasnio, no kad bih poceo sa objasnjivanjima to bi trajalo vijecno a uz petlju for bi vam trebao objasniti jos i neke druge stvari, no siguran sam da bi vas ovaj primjer treba prosvijetliti:


// Ova komanda ce izbrisati chat samo igracu koji ju je napisao
if(strcmp(cmdtext, "/cc", true) == 0)
{
    for(new i = 0; i < 100; i++) // Zbog ove petlje for
        {
        SendClientMessage(playerid, -1, " "); // ova funkcija ce se ponoviti 100 puta
        }
    SendClientMessage(playerid, -1, "Chat obrisan!"); // a nakon zavrsenih ponavljanja ce se ispisati ova poruka
    return 1;
}


Kako bi to izgledalo bez petlje for?



if(strcmp(cmdtext, "/cc", true) == 0)
{
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
        SendClientMessage(playerid, -1, "");
                  ...
        SendClientMessage(playerid, -1, "Chat je obrisan! ");
    return 1;
}


Kao sto vidite, za komandu /cc uz petlju for ispisali smo 9 linija dok bi nam bez nje trebalo mnogo vise.

Nadam se da sam vam uspio objasniti nacin rada petlje for te da cete je sto vise primjenjivati u praksi. Petlja for se jos zove i petlja ponavljanja, eto tako da znate. Ako vam se svidio tut, a nadam se da je, potrudit cu se da ih napravim jos!

vlado_plavsic

Lepo matori, samo moras da pazis. U onom prvom primeru si stavio,citiram: "for (int i=0;i<5;i++) " .Ono sto si verovatno mahinalno stavio je "Int i". PAWN jeste C-like jezik al moras da pazis jer kompajler pawno ne priznaje takav tip podataka :) (int,char,itd)

Sve ostalo je lepo skockano,mada si mogao jos malo teorije da napomenes,sta je to u sustini i to.

Pozdrav
Poslednja Izmena: Novembar 22, 2012, 17:10:27 POSLE PODNE od Владимир Плавшић aka Plavša

Citat: Ð'ладимир Плавшић aka PlavÅ¡a poslato Novembar 22, 2012, 17:09:54 POSLE PODNE
Lepo matori, samo moras da pazis. U onom prvom primeru si stavio,citiram: "for (int i=0;i<5;i++) " .Ono sto si verovatno mahinalno stavio je "Int i". PAWN jeste C-like jezik al moras da pazis jer kompajler pawno ne priznaje takav tip podataka :) (int,char,itd)

Sve ostalo je lepo skockano,mada si mogao jos malo teorije da napomenes,sta je to u sustini i to.

Pozdrav

da, zaboravio sam napomenuti da u pawn jeziku se uzima new a ne int, a o petlji for i ostalim petljama bi napisali romane hehe ovo je sasvim dovoljno


Jednostavno objasnjen tutorial, pohvale za trud i pojednostavljivanje! :D
Citat: Nikola TeslaNe žalim što su drugi pokrali moje ideje. Žalim što nemaju svoje.