[ miljan9602 @ 13.09.2013. 08:28 ] @
Pozdrav. Tek sam poceo da ucim java programiranje pratim trenutno neke tutoriale na srpskom preko youtube nisu neki ali pomazu.
Sada sam dosao do nizova i malo sam se zbunio pa trazim pojasnjenje.

Code:

public class Tutorial11 
{
    public static void main(String[] args)
    {
        int[] mojNiz = {5,5,5,5,5,10,10,10,10,10};
        
        for (int i=0; i<mojNiz.length-1; i++)
            System.out.println(mojNiz[i]);
    }
}



Ja sam razumeo kroz ovaj tutorial da se nizovi koriste kad treba vise promenjljivih. ovaj deo:
{5,5,5,5,5,10,10,10,10,10};
oznacava 10 promenjljivih sa svojim vrednostima 0=5, 1=5, 2=5.... 8=10,9=10. Tako sam razumeo.
Onda u for petlji kroz tutorial nije nista objasnjeno ali sam ja dosao do nekog mog zakljucka za koji ne znam da li je tacan
int i=0; deklarisali smo i promenjljivu i dali petlji pocetnu vrednost.
E sad ovaj deo mi malo nije jasan
Code:

for (int i=0; i<mojNiz.length-1; i++)
            System.out.println(mojNiz[i]);

Skontao sam samo da promenjljiva i krece od 0 i da se povecava za 1 to je ovo i++;
i kako se promenjljiva i povecava za jedan onda se ispisuju brojevi iz ovog niza System.out.println(mojNiz);
Ali zasto smo u ovoj for petlji koristili mojNiz.length-1; ?
Ja sam vam ovde napisao kako sam ja protumacio ovaj program, ako gresim negde molio bi vas da mi to blize pojasnite jer ovaj tutorial koji gledam nije dovoljno pojasnjen.

[ ser_nicky @ 13.09.2013. 09:18 ] @
I ja sam početnik, al da probam da objasnim:)...Ovaj deo oko for petlje: mojNiz.length ti vraća dužinu niza. Ti si u svom primeru mogao da napišeš i<9, jer u ovom slučaju znaš kolika je dužina tvog niza, ali ako imaš niz u kome imaš ko zna koliko članova, da ne bi pisao npr. i<1256, uvek je bolje staviti mojNiz.length. Takođe, možda ćeš poželeti da promeniš nešto u nizu (da dodaš ili oduzmeš neki član), pa da ne bi u petlji svaki put menjao broj i tako rizikovao grešku, mojNiz.length ti pruža fleksibilnost, odnosno "prati" promene i prilagođava rezultat. U tvom konkretnom primeru, petlja ide kroz prvih 9 članova niza (jer imaš mojNiz.length-1, tj u prevodu 10-1) i ispisuje na ekranu rezultat prilikom prolaska kroz svaku iteraciju.

Nadam se da sam bio dovoljno razmljiv, a možda će neko od iskusnijih moći da pruži i bolje objašnjenje.

Pozdrav

P.S. Malo off, ali ako počinješ da učiš Javu, probaj knjigu Head First Java, prilagođena je početnicima i na sjajan način, kroz ilustracije i mozgalice te uči Javi.
[ nemnesic @ 13.09.2013. 09:48 ] @
Lepo ti je objasnio ser_nicky. Samo da dodam par stvari:

1. Ovu for pertlju mogao si da napises da je i <= mojNiz.length ---- da te ne bi bunilo oovo -1.

2. Mozes umesto ovog ruznog for loop-a da uradis for(int element : mojNiz){}
Code:

public class Tutorial11 
{
    public static void main(String[] args)
    {
        int[] mojNiz = {5,5,5,5,5,10,10,10,10,10};

        //je isto sto i
        for(int nizElement : mojNiz){
            System.out.println(nizElement);
        }
        
        for (int i=0; i<mojNiz.length-1; i++){
            System.out.println(mojNiz[i]);
        }
      
    }
}


Uvek pisi { } pa cak i kada imas samo jednu liniju koda. Jer program postaje pregledniji.
Znaci

Code:

public class Tutorial11 
{
    public static void main(String[] args)
    {
        int[] mojNiz = {5,5,5,5,5,10,10,10,10,10};
        
        for (int i=0; i<mojNiz.length-1; i++){
            System.out.println(mojNiz[i]);
        }
    }
}
[ Rapaic Rajko @ 13.09.2013. 10:36 ] @
nemnesic, navodis coveka pogresno :) .

I ja sam pocetnik (u javi ;) ), ali - gornja for petlja S RAZLOGOM ide od 0 do 8, to jest printa prvih 9 elemenata od ukupno 10.
Kako si ti napisao, for petlja bi pokusala da isprinta i 11-i element (i == 10)...
A "elegantnoj" petlji for(item : collection) tek nema mesta ovde, pa ne iteriraju se svi elementi...

Pozz (NHF)
[ nemnesic @ 13.09.2013. 10:44 ] @
:) e sad si me naterao da kompajliram i proveravam

Code:

public class Test
{
    public static void main(String[] args)
    {
        int[] mojNiz = {1,2,3,4,5,6,7,8,9};
        
        for (int i=0; i<mojNiz.length-1; i++){
            System.out.println(mojNiz[i]);
        }
        System.out.println("-------------");
        for(int nizElement : mojNiz){
            System.out.println(nizElement);
        }
    }
}

****OUTPUT****
1
2
3
4
5
6
7
8
-------------
1
2
3
4
5
6
7
8
9


U "elegantoj" petlji se svi elementi iteriraju...a ovde nedostaje jedan
[ miljan9602 @ 17.09.2013. 09:51 ] @
Hvala vam momci, skontao sam sada to sto ste mi rekli a jel moze neko samo da mi kaze mojNiz zasto se u ovom delo stavljaju ove [] zagrade to mi nece biti jasno, da li postoji neka definicija ili je to samo ta sintaksa tog jezika pa se tako mora staviti, to mi samo nije jasno. :)
[ Burgos @ 17.09.2013. 10:10 ] @
Code:
mojNiz[i]


Pristupaš i-tom elementu niza.
[ ser_nicky @ 17.09.2013. 10:41 ] @
Citat:
miljan9602:
Hvala vam momci, skontao sam sada to sto ste mi rekli a jel moze neko samo da mi kaze mojNiz zasto se u ovom delo stavljaju ove [] zagrade to mi nece biti jasno, da li postoji neka definicija ili je to samo ta sintaksa tog jezika pa se tako mora staviti, to mi samo nije jasno. :)


Ako misliš na ovaj red koda:
int[] mojNiz = {5,5,5,5,5,10,10,10,10,10};

ovaj par praznih zagrada [] služi da definiše niz kao tip podatka, odnosno da "najavi" da treba pripremiti memorijski prostor za niz koji će, u ovom slučaju, sadržati samo numeričke podatke tipa integer (int). Da si npr. stavio samo int mojNiz (dakle, bez [] zagrada), ne bi mogao da deklarišeš niz, već samo pojedinačnu numeričku vrednost. Suma sumarum, int označava tip podatka koji će biti u nizu, [] zagrade označavaju da je u pitanju niz kao tip podatka.

Nadam se da sam bio razumljiv, mada bi možda neko od iskusnijih članova možda mogao i bolje da objasni.
[ Rusi @ 17.09.2013. 12:08 ] @
Takodje mozes i ovako a tako i ja vise volim da stavljam:
int mojNiz[] = {...}
[ miodrags @ 24.09.2013. 17:31 ] @
Izmeni:

Code:

for (int i=0; i<mojNiz.length-1; i++){


u:

Code:

for (int i=0; i<mojNiz.length; i++){



[ neki_adsl @ 21.11.2015. 10:24 ] @
Cao svima! Da li bi mogao neko da mi kaze kako da izmenim neki odredjen clan u nizu. Tipa postoje cene artikala, ali neke od cena su na akciji i sad bi htela da stavim da promenim cenu u daljem izvrsavanju programa. Ne znam koja je sintaksa, jedino sto sam nasla je niz.set(int int), ali medjutim meni je tip niza double.
[ nemnesic @ 23.11.2015. 05:33 ] @

Nije mi bas jasno pitanje. Kako izgleda tvoj niz?

setovanje vrednosti je isto - nema veze da li je int ili double ili string?

https://docs.oracle.com/javase.../java/nutsandbolts/arrays.html