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
David Hartinger
Vlastník
Avatar
Odpovídá na Norbert Hrdlicka
David Hartinger:16.7.2018 13:26

Přečíst si chybovou hlášku.

Odpovědět
16.7.2018 13:26
New kid back on the block with a R.I.P
Avatar
Odpovídá na Norbert Hrdlicka
Neaktivní uživatel:16.7.2018 14:17

Nemáš třeba místo středníku čárku/nic? Podle toho jak jsi to napsal to vypadá, že ano.

Odpovědět
16.7.2018 14:17
Neaktivní uživatelský účet
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Norbert Hrdlicka
pocitac770:16.7.2018 16:32

Také možnost, že tam máš napsáno opravdu [ ], mezi těmi závorkami nemá být mezera

 
Odpovědět
16.7.2018 16:32
Avatar
Odpovídá na David Hartinger
Norbert Hrdlicka:17.7.2018 7:57

Exception in thread "main" java.lang.Run­timeException: Uncompilable source code - not a statement
at pole.Pole.main(Po­le.java:22)
C:\Users\blan­ka\AppData\Lo­cal\NetBeans\Cache\8­.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)

toto je chybová hláška co mi vyjela bohužel nevím co sní :(

 
Odpovědět
17.7.2018 7:57
Avatar
Odpovídá na Norbert Hrdlicka
Matúš Olejník:17.7.2018 9:34

Choď do Pole.java na riadok 22, celý ho skopíruj a vlož sem.

Odpovědět
17.7.2018 9:34
/* I am not sure why this works but it fixes the problem */
Avatar
Jakub Říman:12.10.2018 9:37

Ahoj, není mi jasný tento příklad:

int[] pole = new int[10];
pole[0] = 1;
for (int i = 0; i < 10; i++) {
pole[i] = i + 1;
}

Proč je tam ten druhý řádek pole[0] = 1; ? Vždyť cyklus pod ním stejně ten první index naplní...

 
Odpovědět
12.10.2018 9:37
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Jakub Říman
pocitac770:12.10.2018 13:14

To tam nepatří normálně, je to jenom ukázka toho, že to dělá jedno a totéž

 
Odpovědět
12.10.2018 13:14
Avatar
Odpovídá na pocitac770
Jakub Říman:13.10.2018 17:08

Díky. A ještě mám jeden dotaz. Zkoušel jsem si napsat program, kde zadám délku pole (stringy) a program mi následně vypíše, co jsem zadal:

package pracespolem;

import java.util.Scanner;

public class PracesPolem {

public static void main(String[] args) {
Scanner sc = new Scanner (System.in, "Windows-1250");
System.out.prin­tln("Zadej počet prvků pole");
int pocetprvku = Integer.parse­Int(sc.nextLi­ne());
String pole[] = new String[pocetprvku];

for(int i = 1; i <= pocetprvku; i++)
{
System.out.prin­tln("Zadej" + i + ". prvek");
pole[i] = sc.nextLine();
}
System.out.prin­tln("Nyní ti vypíšu, co všechno jsi zadal:");
for (String j : pole)
{
System.out.print(j + " ");
}

}
}

Program se spustí, ale když má vypsat, že mi nyní zopakuje, co jsme napsal, tak spadne a hodí hlášku: "Exception in thread "main" java.lang.Arra­yIndexOutOfBou­ndsException: 2
at pracespolem.Pra­cesPolem.main(Pra­cesPolem.java:22)
C:\Users\Jakub\Ap­pData\Local\Net­Beans\Cache\8­.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 7 seconds)"

ať koukám, jak koukám, nevím, čím to může být. Moc děkuju za případné rady!

 
Odpovědět
13.10.2018 17:08
Avatar
LeNa
Člen
Avatar
Odpovídá na Jakub Říman
LeNa:13.10.2018 18:18

V cyklu jsi vylezl mimo pole.

 
Odpovědět
13.10.2018 18:18
Avatar
Odpovídá na Jakub Říman
Matúš Olejník:13.10.2018 18:19

Ak si poriadne prečítaš tento článok zistíš že indexovanie prvkov v poli začína od 0. Takže keď v takomto cykle, kde i je index v tvojom poli,

for(int i = 1; i <= pocetprvku; i++)

vkladáš údaje do poľa tak pri poslednom načítaní ti vyhodí tvoju chybu pretože ideš ukladať niečo mimo rozsah tvojho poľa. Preto si uprav ten cyklus takto

for(int i = 0; i <  pocetprvku; i++)
Odpovědět
13.10.2018 18:19
/* I am not sure why this works but it fixes the problem */
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.