NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 12 - Pole v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá 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] + " ");
}
Odpovědět
16.8.2017 20:40
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá 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) + " ");
}
Odpovědět
16.8.2017 20:46
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 ?

 
Odpovědět
24.8.2017 20:29
Avatar
Moss
Člen
Avatar
Odpovídá 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.

 
Odpovědět
24.8.2017 20:48
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

Odpovědět
6.9.2017 14:38
Jít pořád dál má smysl
Avatar
Odpovídá 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[]);
}
Odpovědět
6.9.2017 15:07
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá 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--) {...}
Odpovědět
6.9.2017 15:14
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá 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?

Odpovědět
6.9.2017 15:56
Jít pořád dál má smysl
Avatar
Odpovídá 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.

Odpovědět
6.9.2017 17:11
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);
}
}

 
Odpovědět
8.9.2017 14:18
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 222.