Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 12. diel - Pole v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Maroš Škumát
Michal Šmahel:16.8.2017 20:40

Ahoj, úplně nevím, co myslíš.

Klasický for cyklus, který prochází pole je vlastně stejný jako for each (používaný v článku). Je to tedy správně.

Jen bych měl menší výhradu, chtělo by to více zobecnit. Konečný index nastavuj podle velikosti pole.

int[] pole = new int[10];
pole[0] = 1;

// Konečný index je roven velikosti pole
for (int i = 0; i < pole.length; i++) {
    pole[i] = i + 1;
    System.out.print(pole[i] + " ");
}
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá na Michal Šmahel
Michal Šmahel:16.8.2017 20:46

Ještě abych to doplnil. To pole je tam trochu zbytečné, šlo by ho úplně vypustit.

for (int i = 1; i <= 10; i++) {
    System.out.print((i + 1) + " ");
}
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Maroš Škumát:24.8.2017 20:29

čo presne robí ten cyklus foreach, a načo presne slúži ?

Avatar
Moss
Člen
Avatar
Odpovedá na Maroš Škumát
Moss:24.8.2017 20:48

Cyklus foreach sluzi na prejdenie vsetkych prvkov v poli. Funguje to takto: for (datovyTypPola x : pole): do premennej x sa uklada hodnota prvku pola, ktory je na rade, s ktorym mozes pracovat.

Avatar
Michal Stisek:6.9.2017 14:38

V článku je napsáno: Nebo např. vypsat zadaná čísla pozpátku? a mě by zajímalo, jakým způsobem se dají vypsat hodnoty z pole od největšího po nejmenší, nebo např. stringy abecedně pozpátku. Může mě někdo zasvětit? Díky

Odpovedať
Jít pořád dál má smysl
Avatar
Odpovedá na Michal Stisek
Michal Šmahel:6.9.2017 15:07

Ahoj, výpis hodnot pole pozpátku je vcelku jednoduché. Stačí nastavit počáteční index na velikost pole - 1.

// Vytvoření pole
Int[] pole = new int[10];

// Projití pole od nejvyššího indexu k nejnižšímu
For(int i = pole.length - 1; i >= 0; i++) {
   System.out.println(pole[]);
}
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá na Michal Šmahel
Michal Šmahel:6.9.2017 15:14

Co se týče textových řetězců, tam lze využít rozsekání na pole jednotlivých znaků a následné spojení znaků zpět na řetězec při přicházejí pole pozpátku.

Alternativně lze využít metodu na třídě StringBuffer, což je daleko jednodušší.

Ještě oprava předchozího komentáře:

For(int i = ...; i >= 0; i--) {...}
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá na Michal Šmahel
Michal Stisek:6.9.2017 15:56

Díky moc za odpověď, ta dekrementace mi došla, jen nechápu proč musí být délka pole -1, když jsem napsal

for(int i = pole.length; i > 0; i--)

tak mi to háže error, přitom mi přijde, že by měl cyklus začít na poslední hodnotě pole a pak opakovat cyklus podle počtu indexů?
Nebo je to tím, že pole začíná 0, při deseti indexech končí 9 a v cyklu int i má hodnotu 10 proto to -1? Aby dokázal vytáhnout poslední hodnotu z 9 (posledního) indexu pole?

Odpovedať
Jít pořád dál má smysl
Avatar
Odpovedá na Michal Stisek
Michal Šmahel:6.9.2017 17:11
Pole.length

Tohle ti vrátí počet prvků v poli (tj. 10). Pole se indexuje od 0, tzn., že obsahuje indexy 0-9. Poslední je tedy (počet prvků v poli - 1) kvůli indexování od nuly.

Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Karel Dyntar
Člen
Avatar
Karel Dyntar:8.9.2017 14:18

Snažím se vytvořit pole, jehož velikost není pevně stanovena, a které by se naplnilo náhodnými čísly z vlastního rozsahu. Narazil jsem na problém, že se pole plní větším množstvím hodnot.

System.out.prin­t("Zadejte počet výsledků: ");
pocet = new int[sc.nextInt()]; // Načete délku pole. Rozsah.

for (int i=0; i<pocet.length ; i++){ // Cyklus, který běží do naplnění pole.

Random random = new Random();
for (int idx = 1; idx <= pocet.length; ++idx){
showRandomInte­ger(START, END, random);
}
}

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 222.