|
[ 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
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|