Poslao: 29 Jul 2018 17:54
|
offline
- minickg
- Novi MyCity građanin
- Pridružio: 16 Jan 2010
- Poruke: 23
|
Guglao sam, citao po stackoverflow-u ali ... Neki kazu for kada se zna koliko ce se puta telo petlje izvrsiti, neki kazu stvar izbora. Da li je zaista stvar izbora programera ili... ? Pa mora da ima nesto Ne verujem da je konstruktor napravio tri "razlicite" petlje tek onako. Molim Vas ako se petlje zaista razlikuju u funkcionalnom ,a ne samo u sintaksnom smislu da mi pojasni.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 29 Jul 2018 18:14
|
offline
- Milos ZA
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Super građanin
- Pridružio: 31 Dec 2015
- Poruke: 1284
|
Moj primer. While petlju koristim kada znam uslov, a ne znam koliko puta ce se izvrisiti. For petlju koristim kada znam oba.
|
|
|
|
Poslao: 29 Jul 2018 18:23
|
offline
- minickg
- Novi MyCity građanin
- Pridružio: 16 Jan 2010
- Poruke: 23
|
Ok. Ali meni samo treba neki primer/kod da ja ukopcam kad se koristi jedno a kad drugo.
|
|
|
|
Poslao: 29 Jul 2018 18:39
|
offline
- E.L.I.T.E.
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
I for može da se koristi kao while petlja, samo izostaviš uslove
U suštini nema nekog pravila. while se koristi da se izvršava određeni deo koda sve dok je zadovoljen neki uslov dok se for obično koristi za ograničen broj iteracija, tipa za prolazak kroz neki niz ili elemente objekta. Ukoliko radiš sa nizovima možeš koristiti forEach() funkciju što sprečava da pristupiš nealociranom indeksu niza.
var niz = [1, 2, 3, 4, 5];
niz.forEach( function (e) {
console.log(e);
});
// 1
// 2
// 3
// 4
// 5
A imaš i for .. in za prolazak kroz objekat.
var objekat = {
'ime': 'Pera',
'prezime': 'Perić'
};
for (k in objekat) {
if (objekat.hasOwnProperty(k)) {
console.log(k + ': ' + objekat[k]);
}
}
// ime: Pera
// prezime: Perić
A imaš i map() funkciju koja je odlična kada recimo želiš da na brz način izmeniš elemente nekog niza.
var niz = [1, 3, 5, 7];
niz.map( function (x) {
return x * x;
});
console.log(niz);
// 1, 9, 25, 49
|
|
|
|
|
Poslao: 29 Jul 2018 18:53
|
offline
- E.L.I.T.E.
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
vasa.93 ::Ovo je primer za while(true), a osim ako nema nekog pooosebnog razloga...
Da, mrzelo me je da smišljam nešto specijalno pa sam ostavio da samo ispisuje tekst. Viđao sam u C kodnim bazama da se koristi i da se prekida pri određenom uslovu sa break.
|
|
|
|
Poslao: 19 Nov 2018 20:43
|
offline
- FoxVanis
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
Evo razloga za izbor:
for( var i = 0; i < 10; i++)
{
//tralala
}
Koristi se za petlju iz razloga što mogu znati BROJ ITERACIJA koje moram uraditi i imam INCREMENTING varijablu koja može biti veoma korisna.
Sintaksa tokom ciklusa:
while(!done)
{
//tralala
}
Ja bih koristio ovu petlju kada NISAM SIGURAN koliko ITERACIJA mogu da izvršim. Primeri: Čekanje da korisnik unese tačne ulazne vrednosti i drži petlju dok se ne unese odgovarajuća vrednost. Ovo se inače retko koristi jer imamo generalno u JS sve moguće evente i prosto je nepotrebno opterećivati memoriju ili procesor sa ovim.
Do-While:
do
{
//tralala
}
while(!done);
Ova petlja je skoro ista kao i predhodna, ali bih koristio ovo kada mi je potrebno nešto uraditi BAR JEDNOM pre nego što potvrdim šta god da je to učinilo da želim taj kod vrtiti ponovo. Primer: pitajte korisnika o inputu po prvi put i potvrdite ga. Ako je pogrešan unos dat, potom pozovite i ponovo tražite unos.
U praksi ti generalno treba najviše u 98% for() petlja i forEach() . Sve ostalo je već zastarelo ali korisno znati i upotrebljivo je lako.
Danas je JavaScript pun event-a i sve se radi preko toga. Nekada nije bilo ni 50% približan broj eventa i sve se radilo kao sa BASH skriptama. Čak se umesto while() pronašao dobrim setTimeout() koji se koristi kao loop sa određenim kašnjenjem.
U svakom slučaju, od tebe zavisi šta želiš koristiti i koliko želiš da optimizuješ kod.
U javaskriptu je svaka mikrooptimizacija i optimizacija poželjna a posebno pravilno napisani algoritmi i loopovi koji neće opteretiti CPU i pšružiti rad na svim platformama i browser-ima
|
|
|
|
Poslao: 20 Nov 2018 16:59
|
offline
- Rastafarii
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
for( int i = 0; i > 10; i++)
{
//tralala
}
Ovo ce da se izvrsi okruglo NULA puta, i to iz dva razloga: "Uncaught SyntaxError: Unexpected identifier" (treba "var" umesto "int") i drugo, petlja pocinje od 0, dokle god je i vece od 10, sto se nece desiti nikad.
|
|
|
|
Poslao: 21 Nov 2018 14:11
|
offline
- FoxVanis
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
Rastafarii ::for( int i = 0; i > 10; i++)
{
//tralala
}
Ovo ce da se izvrsi okruglo NULA puta, i to iz dva razloga: "Uncaught SyntaxError: Unexpected identifier" (treba "var" umesto "int") i drugo, petlja pocinje od 0, dokle god je i vece od 10, sto se nece desiti nikad.
ooo Bože. Ispravio sam. Malo sam nabrzaka sve pisao i totalno pobrljavio. Hvala ti.
|
|
|
|